MySQL数据库《基础篇--库的操作和数据类型》

一、库的操作

1.查看数据库

1.1语法:

sql 复制代码
show databases;

查看当前服务器的所有数据库
databases是复数形式
⼤⼩写不敏感

2.创建数据库

2.1语法:

sql 复制代码
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ...
create_option: [DEFAULT] {
 CHARACTER SET [=] charset_name
 | COLLATE [=] collation_name
 | ENCRYPTION [=] {'Y' | 'N'}
}

注#

(1)大写的表示关键字
(2)db_name:表⽰⾃定义的数据库名
(3){}⼤插号表⽰必须选
(4)| 表⽰任选其中⼀个
(5)\[\]中括号表⽰是可选项
(6)CHARACTER SET:指定数据库采⽤的字符集编码
(7)COLLATE:指定数据库字符集的校验规则
(8)ENCRYPTION:数据库是否加密,MySQL 8.0.16中引⼊的新选项

2.2⽰例:创建⼀个名为java113的数据库


再次执行上次的创建库:得到


在真下在的工作中,执行SQL语句,不是手动一条一条执行的,而是批量一起执行 ,为了不让某一条语句的错误影响整个执行流程,都会加上一些类似于ifnotexists的校验,防止因为某条SQL出错导致整个SQL中断执行

3.字符集编码和校验(排序)规则

3.1查看数据库⽀持的字符集编码

MySQL8.0默认的字符集编码是utf8mb4 ,MySQL5.7默认的字符集是 latin1

3.2查看数据库⽀持的排序规则


MySQL8.0默认的排序规则是 utf8mb4_0900_ai_ci , MySQL5.7默认排序规则是utf8mb4_general_ci
建议:创建数据库的时候手动确认认定字符集

4.修改数据库

4.1语法

sql 复制代码
ALTER {DATABASE | SCHEMA} [db_name]
 alter_option ...
alter_option: {
 [DEFAULT] CHARACTER SET [=] charset_name
 | [DEFAULT] COLLATE [=] collation_name
 | [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
 | READ ONLY [=] {DEFAULT | 0 | 1}
}

对数据库的修改主要是修改数据库的字符集,校验规则

4.2示例:

将test+班级名的数据库字符集改成gbk

sql 复制代码
mysql> alter database test001 character set gbk;
Query OK, 1 row affected (0.01 sec)
mysql> show create database test001;
+----------+-------------------------------------------------------------------
-------------
| Database | Create Database 
 
+----------+-------------------------------------------------------------------
-------------
| java01 | CREATE DATABASE `test001` /*!40100 DEFAULT CHARACTER SET gbk */
/*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-------------------------------------------------------------------
-------------
1 row in set (0.00 sec)

选择要操作的数据库
use数据库名

5.删除数据库

5.1语法:

sql 复制代码
DROP {DATABASEISCHEMA} [IFEXISTS] db_name

特别注意:!!!

(1)删除数据库是⼀个非常危险操作,不要随意删除数据库
(2)删除数据库之后,数据库对应的⽬录及⽬录中的所有⽂件也会被删除
(3)删除数据库之后,使⽤show databases; 语句查看不到对应的数据库

二、数据类型

1.常⽤数据类型分类

在⾯向对象软件开发的过程中,通常会先进⾏需求分析从⽽得到类和属性,类是⾯向对象中的概
念,对应到数据库中的概念就是实体 ,类中的属性对应实体中的属性。实体通常以表的形式存在 ,每个实体对应⼀张表,表中的每条记录(数据⾏)就是实体的⼀个实例,每条记录⼜包含若⼲字段(或称为 列),每个字段代表实体的⼀个属性。
如果要定义实体的属性,就要为属性命名并指定合适的数据类型。与其他编程语⾔类似,SQL中
规定了⽤于描述属性的数据类型。常⽤的数据类型有以下⼏类:
(1)数据值类型
(2)字符串类型
(3)⼆进制类型
(4)⽇期类型

2.数据值类型

3.字符串类型

4. 日期 / 时间类型

5. JSON 类型

6. 空间类型(拓展)

关键补充说明

1.无符号属性(UNSIGNED):数值类型可加UNSIGNED关键字,取消负数范围,扩大正数范围(如INTUNSIGNED取值0~4294967295)。

2.CHARvsVARCHAR:CHAR定长,查询速度快但浪费空间;VARCHAR变长,节省空间但查询略慢。

3.TIMESTAMP与时区:TIMESTAMP会根据数据库时区自动转换,而DATETIME仅存储字面量,不转换时区。

  1. DECIMAL精度:存储金额时优先用DECIMAL,避免FLOAT/DOUBLE的精度丢失问题(如.1+0.2

日.3)

总结

  1. MySQL数据类型按功能分为数值、字符串、日期时间、JSON、空间五大类,选择时需结合数据用途和范围。

2.数值类型优先选匹配范围的最小类型(如状态值用TINYINT),字符串优先用VARCHAR(固定长度用CHAR),高精度小数用DECIMAL。

3.日期时间类型中,跨时区场景用TIMESTAMP,常规场景用DATETIME,仅存年份用YEAR。

相关推荐
tiancaijiben几秒前
阿里云SSL证书自动续签与部署完全指南:从托管服务到开源工具全方案解析
数据库
全堆鸿蒙1 分钟前
25 数据库设计与表结构规划:5 张表的设计思路
数据库·华为·cocoa·harmonyos
笃行35014 分钟前
【金仓数据库产品体验官】_坏得起_实测:备份恢复、PITR 时间穿越与主备切换——KingbaseES V9R3C18 深度体验(三)
数据库
笃行3502 小时前
从兼容到进阶:驱动直连、窗口函数与动态 SQL 实测——KingbaseES V9R3C18 深度体验(二)
数据库
笃行3503 小时前
MySQL 的 JSON 字段迁到金仓还能用吗?——KingbaseES V9R3C18 JSON 操作符与函数兼容实测
数据库
IpdataCloud4 小时前
跨境AI金融风险怎么防?IP风险画像的实战应用指南
数据库·tcp/ip·金融·ip
Alan_756 小时前
API 接口慢调用根因定位:从 TCP 建连到数据库 IO 的全栈排查实战
数据库
多巴胺梦想家6 小时前
事务与并发控制:当多人同时操作数据库
服务器·数据库·oracle
howard20057 小时前
PostgreSQL起步
数据库·postgresql