【MySQL】MySQL库的操作
🥕个人主页:开敲🍉
🔥所属专栏:MySQL🍋
🌼文章目录🌼
1. 数据库的操作
1.1 查看数据库
1.2 创建数据库
1.3 删除数据库
2. 字符集和校验规则
2.1 查看系统默认字符集以及校验规则
2.2 查看数据库支持的字符集
2.3 校验规则对数据库的影响
3. 操作数据库
3.1 显示创建语句
3.2 修改数据库
3.3 数据库的备份和恢复
3.3.1 表的备份和恢复
3.3 查看当前 MySQL 连接情况
1. 数据库的操作
1.1 查看数据库
语法:
show databases;
1.2 创建数据库
语法:
create database [if not exists] database_name;
// database_name 就是创建的数据库的名称
//[]内的 if not exists 是可选项,表示如果要创建的数据库不存在则创建
创建数据库样例
创建一个名为 database1 的数据库:
创建前:
创建后:
1.3 删除数据库
语法:
drop database database_name;
//database_name 就是要删除的数据库的名称
注:删除数据库后里面的数据也会一并删除,因此不要轻易删除数据库。
删除数据库样例
删除名为 database1 的数据库。
删除前:
删除后:
2. 字符集和校验规则
字符集:控制数据的存储方式,例如 utf8 可以存储中文
校验规则:控制解码的规则,任何数据在进行编码后读取时都要进行解码。校验规则就是使用某一种解码规则对数据进行解码,比如:使用英文翻译中文 或者 使用韩文翻译中文
2.1 查看系统默认字符集以及校验规则
show variables like 'charcter_set_database';
show variables like 'collation_d atabase';
从上面可以看到,当前我们创建库时系统默认给我们使用的字符集是 utf8mb4,校验规则为 utf8mb4_0900_ai_ci。
2.2 查看数据库支持的字符集
show charset;
2.3 校验规则对数据库的影响
① 我们创建一个库,使用 utf8_general_ci 不区分大小写的校验规则,在库中创建一个表,用于存放字符。
按顺序执行如下命令,创建不区分大小写的库:
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
此时我们使用:
select * from person;
来查看 person 表中的内容:
数据确实存储进来了,我们再执行命令:
select * from person where name='a';
来在表中查询 name='a' 的元素:
可以看到,我们在查询 'a' 时,连同着 'A' 也一并给我们查询了出来,这就说明在不区分大小写的校验规则下,'a' 和 'A' 没区别。
② 接下来我们再创建一个库,使用 utf8_bin 不区分大小写的校验规则。
按顺序执行如下命令:
create database test2 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
数据存储好了,此时我们再执行命令:
select * from person where name='a';
可以看到,在区分大小写的校验规则下,'a' 和 'A' 是不一样的。
3. 操作数据库
3.1 显示创建语句
show create database database_name(数据库名称);
比如我们查询一下上面 test1 数据的创建时的语句:
show create database test1;
注意这里后面的 /**/ 并不是是注释,翻译过来就是:如果版本 ≥ 4.01,则使用后面所写的 utf8mb3 字符集为默认字符集;如果版本 < 4.01 则会忽略这条指令。
3.2 修改数据库
alter database db_name(数据库名称)
说明:对数据库的修改主要是修改数据库的字符集和校验规则,不要轻易修改数据库的名称。
例:将数据库的字符集修改为 gbk
alter databse test1 charset=gbk;
注:字符集更改后,校验规则会自动跟着更改
3.3 数据库的备份和恢复
备份:
mysqldump -u root -p 密码 -B 数据库名称 > 存储备份数据库的文件路径
同时备份多个数据库:
mysqldump -u root -p 密码 -B 数据库名1 数据库名2 ... > 存储备份数据库的文件路径
注:如果在备份数据库时没有带上 -B选项,则在恢复备份时需要自行先创建一个数据库用于存放备份的数据。因为带上 -B 选项后,在备份数据时会将我们创建数据库的指令一同备份下来,之后恢复时会自动创建数据库用于存放数据,且数据库名称与创建时的数据库名称一样。
还原:
mysql > source 存储备份数据库的文件路径
3.3.1 表的备份和恢复
备份:
mysqldump -u root -p 数据库名 表1 表2 ... > 存储备份表的文件路径
3.3 查看当前 MySQL 连接情况
show processlist;
使用这个指令可以让我们清晰地看到当前有哪些用户连接到了我们的 MySQL,如果查到某个用户不是你所熟悉的,很有可能你的数据库被入侵了。如果以后使用数据库时发现自己的数据库比较慢,可以查看自己数据库的连接情况。