文章目录
- 一、创建数据库create
- 二、数据库所使用的编码
- 2.1 查询字符集和校验集
- 2.2 指定编码创建数据库
- 2.3 不同的校验集对比
- 三、删除数据库drop
- 四、查看数据库show
- 五、修改数据库alter
- 六、数据库的备份与恢复
- 6.1 备份 mysqldump
- 6.2 恢复source
- 6.3 仅备份几张表或备份多个数据库
- 七、查看数据库的连接情况
一、创建数据库create
create database database1;
创建库本质是在/var/lib/mysql中创建一个目录
二、数据库所使用的编码
数据库编码创建数据库的时候,有两个编码集:
- 数据库编码(字符)集:数据库存储数据的编码集。
- 数据库校验集:支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。
数据库无论对数据做任何操作,都要保证操作和编码必须是编码一致的。
2.1 查询字符集和校验集
- 查询当前MySQL的编码集
show variables like 'character_set_database';
- 查询当前MySQL的校验集
show variables like 'collation_database';
2.2 指定编码创建数据库
当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则
是:utf8_ general_ ci
- 创建一个使用utf8字符集的 d1 数据库
create database d1 charset=utf8;
- 创建一个使用utf8字符集,并带校对规则的 d2 数据库。
create database d2 charset=utf8 collate utf8_general_ci;
2.3 不同的校验集对比
创建两个数据库,编码都是utf8,但是校验集不同,一个是使用utf8_ general_ ci
(不区分大小写),另一个是使用utf8_ bin
(区分大小写)
- test1
建表+插入数据:
use test1;
create table person(name varchar(10));
insert into person values('a');
insert into person values('A');
进行查询:
select * from person where name='a';
- test2
建表+插入数据:
use test2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
进行查询:
select * from person where name='a';
三、删除数据库drop
删除数据库本质是在/var/lib/mysql中删除一个目录
drop database database1;
删除数据库后:
数据库内部看不到对应的数据库
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
四、查看数据库show
确认当前所在数据库:
select database();
- 查看数据库
show databases;
- 查看当前数据库中的所有表
show tables;
- 查看创建表时的详细信息
show create database test;
1️⃣ MySQL 建议我们关键字使用大写,但是不是必须的。
2️⃣ 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
3️⃣ /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。
五、修改数据库alter
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
- 修改字符集和校验和
alter database test charset=gbk collate gbk_chinese_ci;
六、数据库的备份与恢复
6.1 备份 mysqldump
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
此时vim打开test.sql,我们会发现,备份的不仅仅只是数据,还有把历史上所有有效的操作都备份起来了。
也就是说 test.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。
6.2 恢复source
source /home/yyh/MySQL/test.sql;
备份不是只备份了数据,操作也备份了:
6.3 仅备份几张表或备份多个数据库
- 仅备份几张表
mysqldump -u root -p 数据库名 表名1 表名2 > 数据库存放路径
- 同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
备份是在shell命令行进行的,而非MySQL客户端。如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。
-B的意思:在备份文件test.sql中是有创建create database的语句:
七、查看数据库的连接情况
查看当前有什么人在使用数据库,也就是查看连接情况:
show processlist;