【MySQL】 库的操作
欢迎拜访:雾里看山-CSDN博客
本篇主题:【MySQL】 库的操作
发布时间:2025.1.23
隶属专栏:MySQL
目录
- 库的创建
- 语法
- 使用
- 编码规则
- 认识编码集
- 查看数据库默认的编码集和校验集
- 查看数据库支持的编码集和校验集
- 指定编码创建数据库
- 验证不同校验编码的影响
- 库的操作
- 查看数据库
- 进入数据库
- 查看我当前在哪个数据库
- 显示创建语句
- 修改数据库
- 数据库的删除
- 查看连接情况
- 库的备份和恢复
- 备份
- 恢复
- 注意
库的创建
语法
create database database1;
create database if not exists database1;
if not exists
在创建数据库的时候,可以加也可以不加。
他的目的是如果已经存在相应的数据库,则不会继续创建。
创建数据库的本质:在/var/lib/mysql
目录下创建的一个目录。
使用
在第二次创建的时候,报出的警告内容就是,已经存在相应的数据库,不在创建新的数据库
编码规则
认识编码集
创建数据库的时候,有两个编码集:
- 数据库编码集 — 数据库未来存储数据
- 数据库校验集 — 支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式
数据库无论对数据做任何操作,都必须保证操作和编码是一致的!
查看数据库默认的编码集和校验集
查看默认编码集的命令:
show variables like 'character_set_database';
查看默认校验集的命令
show variables like 'collation_database';
查看数据库支持的编码集和校验集
查看支持编码集的命令:
show charset;
查看支持校验集的命令
show collation;
指定编码创建数据库
在库相应目录下有一个db.opt
文件,存放的内容就是我们的编码集和校验集。
指定编码集创建文件:
create database db1 charset=utf8;
或者
create database db2 character set utf8;
同时指定编码集和校验规则
create database db3 charset=utf8 collate utf8_general_ci;
验证不同校验编码的影响
创建一个不区分大小写的数据库(编码规则采用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');
创建一个区分大小写的数据库(编码规则采用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';
不区分大小写的查询结果:
区分大小写的查询结果:
排序时的不同
命令:
select * from person order by name;
不区分大小写的排序结果:
区分大小写的排序结果:
库的操作
查看数据库
show databases;
进入数据库
use test1;
查看我当前在哪个数据库
show databases;
显示创建语句
show create database test1;
- MySQL建议我们关键字使用大写,但不是必须的。
- 数据库名字的反引号``,是防止使用的数据库名字是关键字。
/*!40100 default.... */
这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话
修改数据库
alter database test1 charset=gbk collate gbk_chinese_ci;
数据库的删除
drop database test1;
或者
drop database if exists test1;
特别注意,一旦删除数据库,数据库里的表等内容会全部删除,这在实际应用中是一个很危险的事情,所以尽可能的不要删除数据库,非要删的话,做好备份以后再删除。
查看连接情况
show processlist;
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。
库的备份和恢复
备份
在Linux下进行,命令:
mysqldump -P3306 -uroot -p -B test2 > test2.sql
vim编辑器查看test2.sql
文件内容如下:
可见MySQL的备份不仅仅是把数据备份了,而且备份了关于数据库的所有操作。
恢复
在MySQL中进行
命令:source 备份文件的路径
source /home/ubuntu/mysql/test2.sql;
数据库会将你之前的所有操作再做一次。
注意
- 如果只备份一张表
在Linux下进行,命令:
mysqldump -uroot -p 数据库名 表名1 表名2 ... > 存放路径
- 同时备份多个数据库
在Linux下进行,命令:
mysqldump -uroot -p -B 数据库名1 数据库名2 ... > 存放路径
- 如果备份数据库的时候,没有带上
-B
参数,在恢复数据时,需要先创建空数据库,然后使用数据库,再使用source
来恢复。
⚠️ 写在最后:以上内容是我在学习以后得一些总结和概括,如有错误或者需要补充的地方欢迎各位大佬评论或者私信我交流!!!