【MySQL】数据库的增删查改+备份与恢复

文章目录

  • 一、创建数据库create
  • 二、数据库所使用的编码
    • 2.1 查询字符集和校验集
    • 2.2 指定编码创建数据库
    • 2.3 不同的校验集对比
  • 三、删除数据库drop
  • 四、查看数据库show
  • 五、修改数据库alter
  • 六、数据库的备份与恢复
    • 6.1 备份 mysqldump
    • 6.2 恢复source
    • 6.3 仅备份几张表或备份多个数据库
  • 七、查看数据库的连接情况

一、创建数据库create

create database database1;

【MySQL】数据库的增删查改+备份与恢复_第1张图片
创建库本质是在/var/lib/mysql中创建一个目录

二、数据库所使用的编码

数据库编码创建数据库的时候,有两个编码集:

  1. 数据库编码(字符)集:数据库存储数据的编码集。
  2. 数据库校验集:支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。

数据库无论对数据做任何操作,都要保证操作和编码必须是编码一致的。

2.1 查询字符集和校验集

  • 查询当前MySQL的编码集
show variables like 'character_set_database';

【MySQL】数据库的增删查改+备份与恢复_第2张图片

  • 查询当前MySQL的校验集
show variables like 'collation_database';

【MySQL】数据库的增删查改+备份与恢复_第3张图片

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(区分大小写)

【MySQL】数据库的增删查改+备份与恢复_第4张图片

  • 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';

【MySQL】数据库的增删查改+备份与恢复_第5张图片

  • 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';

【MySQL】数据库的增删查改+备份与恢复_第6张图片

三、删除数据库drop

删除数据库本质是在/var/lib/mysql中删除一个目录

drop database database1;

删除数据库后:

数据库内部看不到对应的数据库
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

四、查看数据库show

确认当前所在数据库:

select database();

【MySQL】数据库的增删查改+备份与恢复_第7张图片

  • 查看数据库
show databases;

【MySQL】数据库的增删查改+备份与恢复_第8张图片

  • 查看当前数据库中的所有表
show tables;

【MySQL】数据库的增删查改+备份与恢复_第9张图片

  • 查看创建表时的详细信息
show create database test;

【MySQL】数据库的增删查改+备份与恢复_第10张图片

1️⃣ MySQL 建议我们关键字使用大写,但是不是必须的。
2️⃣ 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
3️⃣ /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

五、修改数据库alter

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

  • 修改字符集和校验和
alter database test charset=gbk collate gbk_chinese_ci;

【MySQL】数据库的增删查改+备份与恢复_第11张图片

六、数据库的备份与恢复

6.1 备份 mysqldump

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

【MySQL】数据库的增删查改+备份与恢复_第12张图片
此时vim打开test.sql,我们会发现,备份的不仅仅只是数据,还有把历史上所有有效的操作都备份起来了。
也就是说 test.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

6.2 恢复source

source /home/yyh/MySQL/test.sql;

【MySQL】数据库的增删查改+备份与恢复_第13张图片

备份不是只备份了数据,操作也备份了:
【MySQL】数据库的增删查改+备份与恢复_第14张图片

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;

【MySQL】数据库的增删查改+备份与恢复_第15张图片

你可能感兴趣的:(MySQL,数据库,mysql,oracle)