1.库的操作
1.1创建数据库
语法
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
大写的英文单词表示关键字
\[\]是可选项
character set指定数据库采用的字符集
collate指定数据库字符集的校验规则
create database d1;
当我们创建数据库没有指定字符集和校验规则时,系统会使用默认字符集utf8mb4,校验规则是utf8mb4_0900_ai_ci。
如下。
创建一个使用utf8字符集的d2数据库
create database d2 charset=utf8;
创建一个使用utf8字符集并带校对规则的d3数据库
create database d3 charset=utf8 collate utf8_general_ci;
字符集主要是控制用什么语言,比如utf8就可以使用中文。
如果字符集与校验规则不匹配时轻则索引失效,查数据异常;重则数据损坏,性能雪崩。
1.2字符集和校验规则
查看当前数据库支持的字符集。
show charset;
大多数校验规则不区分大小写。
但是校验规则是会直接影响字符串的比较,排序以及查询结果的,如果你选择的校验规则是utf8_bin,是会区分大小写的。
查看当前数据库支持的字符集校验规则。
show collation;
1.3操作数据库
查看数据库
show databases;
可以查看你所创建的所有数据库以及MySQL自带的系统库。
show create database 数据库名;
用于查看数据库的完整创建语句,包括字符集和校验规则等完整配置。
show create database 数据库名\G
将;换成\G就可以将输出信息格式化,如下所示

数据库的反引号` `是为了防止使用的数据库名刚好是关键字
/*!40100...*/表示当前MySQL版本大于4.01版本就执行这句话,也就是创建数据库d1。
1.4修改数据库
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
使用alter关键字,对数据库的修改主要指的是修改数据库的字符集和校验规则。
例如。
将d1数据库的字符集改成gdb
alter database d1 charset=gbk;
1.5数据库的删除
drop database [if exists] 数据库名;
使用drop关键字删除数据库,执行删除指令后,数据库内部看不到对应的数据库并且对应数据库文件夹被删除,级联删除,里面的数据表全部被删。
因此需要注意,不要随意删除数据库。
1.6备份和恢复
在进行数据库要删除的情况下,不妨考虑下对数据库进行备份,避免误操作导致数据丢失。
数据库备份就像Git版本控制器一样,把当前数据状态提交存档,出问题时可以随时回滚恢复。
mysqldump -P3306 -u root -p密码 -B 数据库名 > 数据库备份存储的文件路径
例如
mysqldump -P3306 -u root -p密码 -B d1 > E:/my.sql
它能够将我们整个创建数据库,建表,导入数据的语句都装载在这个文件中。
注意是语句,因为它实际保存的就是我们创建数据库建表等操作的SQL命令,当我们进行恢复时其实就是将这些SQL语句重新执行了一遍。
source E:/my.sql
如果备份的是数据库中的一张表
mysqldump -u root -p数据库名 表名1 表名2 > E:/my.sql
如果备份多个数据库
mysqldump -u root -p -B 数据库1 数据库2... > E:/my.sql
如果备份一个数据库时,没有带上-B参数时,在恢复数据库时,需要先创建空数据库,然后使用数据库后,再用source来还原。
-B参数是--database的缩写,若未带上,mysqldump默认不会把创建数据库和使用数据库命令导入进文件中。
2.查看数据库的连接状态
show processlist;
这条命令可以查看当前所有连接到 MySQL 的客户端会话。数据库变慢时第一时间用它排查,也可以用来检查是否有异常或未知的连接。

