快速入门MySQL数据库基础(2)

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 的客户端会话。数据库变慢时第一时间用它排查,也可以用来检查是否有异常或未知的连接。