【MySQL】数据库的增删改查、备份、还原等基本操作

一、创建数据库—create

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: 指定数据库字符集的校验规则

1.1 字符集与校验规则

创建数据库的时候,有两个编码集:
1.数据库编码集——数据库未来存储数据

2.数据库校验集——支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式

数据库无论对数据做任何操作,都必须保证操作和编码必须是匹配的的,防止乱码

1.1.1 查看系统默认字符集以及校验规则

show variables like 'character_set_database';//查看默认字符集
show variables like 'collation_database';//查看默认校验规则

在这里插入图片描述

show charset; 查看数据库支持的字符集
show collation; 查看数据库支持的字符集校验规则

1.1.2 默认方式建立数据库

if not exists:如果不存在就创建,存在就返回waring
在这里插入图片描述

1.1.3 指定编码集建立数据库

关键语句

charset=utf8/设置字符集*/ collate utf8_general_ci/*设置校验规则*/

在这里插入图片描述

1.2 建库的本质

上篇文章中说道数据库的本质就是一个目录,那么直接在指定文件夹下建立一个目录通过show databases也是可以查到的,但是不建议这么做
在这里插入图片描述

二、查看数据库及其相关属性—show

2.1 显示所有数据库

前面提到了show databases显示mysql下的所有数据库

2.2 显示数据库的创建语句

show create database 数据库名;

在这里插入图片描述
//不是注释,他表示如果mysql版本大于4.01,d2创建语句就变成了

CREATE DATABASEd2 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

3.2 显示目前处于那个数据库

select database();

在这里插入图片描述

三、修改数据库—alter

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

对数据库的修改主要指的是修改数据库的字符集,校验规则

如下图,数据库d2原本校验编码是utf8_bin,通过ALTER修改其校验码为utf8
在这里插入图片描述

四、数据库删除—drop

如果存在数据库,就删除

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

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

注意:不要随意删除数据库,否则你就会成为3个月获得60万的男人

五、补充:校验规则对数据库的影响

前面提到的编码集在数据库中有什么作用呢?通过一个案例观察一下

创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]
在这里插入图片描述

区分大小写的查询以及结果[utf8_ bin]
在这里插入图片描述

六、数据库的备份与还原(重中之重)

6.1 数据库的备份与还原

前面说道,数据库的本质就是linux下一个文件目录,最简单的方法就是直接复制那个目录,但是这种方式可移植性不太好,下面来介绍一下常用的备份方式

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

第一步:备份数据库
在这里插入图片描述
sql文件里不仅仅备份了数据库内的数据,之前的有效操作也一并备份了

第二步:删除数据库
在这里插入图片描述

第三步:恢复数据库
在这里插入图片描述
在这里插入图片描述

6.2 其他情况

6.2.1 只备份表

mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

6.2.2 备份多个数据库

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

6.2.3 -B选项

如果备份一个数据库时,没有带上-B参数,在恢复数据库时,需要先创建空数据库,然后使用(use db_name)数据库,再使用source来还原

猜你喜欢

转载自blog.csdn.net/m0_54469145/article/details/131117632