MySQL--库的操作
1. 查看数据库
语法:
show databases;
- databases是复数形式
- ⼤⼩写不敏感
2. 创建数据库
2.1 语法
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] {'Y' | 'N'}
}
- ⼤写部分表⽰关键字
- db_name:表⽰⾃定义的数据库名
- {}⼤插号表⽰必须选
- |表⽰任选其中⼀个
- []中括号表⽰是可选项
- CHARACTERSET:指定数据库采⽤的字符集编码
- COLLATE:指定数据库字符集的校验规则
- ENCRYPTION:数据库是否加密,MySQL8.0.16中引⼊的新选项
在公司里部署一个新的数据库,一般要把所有的SQL语句都写好,放在一个文件夹里统一执行:
1:创建库 2. 创建表 3. 往表里写数据
3. 字符集编码和校验(排序)规则
3.1 字符集编码
字符集编码:为数据进行编码然后保存。
3.1.1 查看数据库⽀持的字符集编码
show charset;
现在大家跟我一起思考一个问题:
英文和数字使用多少字节保存一个字符? ----> 1 byte
中文和标点使用多少字节保存一个字符? -----> ? byte
3.2 校验(排序)规则
校验规则也叫排序规则,指的是如何对数据进行排序。
3.2.1.查看数据库⽀持的排序规则
show collation;
MySQL8.0默认的排序规则是 utf8mb4_0900_ai_ci ,MySQL5.7默认排序规则是 utf8mb4_general_ci
不同的字串集与排序规则对数据库的影响
-
utf8mb4_0900_ai_ci 是MySQL8.0引⼊的新规则,在⽼版本中不能识别;
-
utf8mb4 编码是对Unicode 字符集的⼀种实现,⽤1到4个字节表⽰⼀个字符,可以表⽰世界上⼏乎所有的字符,⽽且更节少空间。
-
0900 是基于UCA9.0.0算法,UCA是UnicodeCollationAlgorithm的缩写
-
ai是Accent-insensitive的缩写,表⽰⼝声不敏感
-
ci是Case-insensitive的缩写表⽰⼤⼩写不敏感 as是Accent-sensitive的缩写,表⽰⼝声敏感
-
cs是Case-sensitive的缩写,表⽰⼤⼩写敏感
-
bin表⽰⼆进制在学习完排序之后,可以通过⽰例观察不同排序规则对于⼤⼩写的影响
一条完整的建库语句:
create database if not exists javaly character set utf8mb4 collate utf8mb4_0900_ai_ci ;
查看系统默认字符集和排序规则
3.2.2 查看系统默认字符集
# 查看系统默认字符集
show variables like '%character%';
# 查看系统默认排序规则
show variables like '%collation%';
补充:
4. 查看创建语句
4.1 语法:
show create database db_name;
5 修改数据库
5.1 语法
对数据库的修改主要是修改数据库的字符集,校验规则。
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}
}
把这个字符集的编码改成GBK。
6. 删除数据库
6. 语法
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;
这里我们就要提示一下删除数据库是一个非常危险的操作,在公司做项目千万不要这样做,如果领导授意就拉着他一起进行删库操作。
- 删除数据库是⼀个危险操作,不要随意删除数据库
- 删除数据库之后,数据库对应的⽬录及⽬录中的所有⽂件也会被删除
- 删除数据库之后,使⽤show databases; 语句查看不到对应的数据库