[MySQL]MySQL库的操作
文章目录
- [MySQL]MySQL库的操作
- 1. 创建数据库
- 2. 字符集和校验规则
- 2.1. 基本概念
- 2.2. 查看系统默认字符集以及校验规则
- 2.3. 查看数据库支持的字符集
- 2.4 查看数据库支持的校验规则
- 2.5 指明字符集和校验规则创建数据库
- 2.6 校验规则对数据库的影响
- 3. 删除数据库
- 4. 查看数据库
- 4.1 查看数据库
- 4.2 显示创建语句
- 4.3 查看当前所处数据库
- 5. 使用数据库
- 6. 修改数据库
- 7. 备份和恢复
- 7.1 备份
- 7.2 还原
- 8. 查看连接情况
- 9. 关于数据库操作
1. 创建数据库
语法:
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: 指定数据库字符集的校验规则
创建数据库示例:
创建名为database1的数据库:
使用if not exits和不使用的区别:
2. 字符集和校验规则
2.1. 基本概念
创建数据库时,有两个编码集:
- 数据库编码集 – 数据库存储数据采用的编码
- 数据库校验集 – 读取数据库中数据采用的编码 (支持数据库进行字段比较使用的编码)
数据库的存储本质是以二进制形式存储,只有使用相匹配的编码方式解析数据才能正确地读取数据,而不是读取乱码。数据库无论对数据作何操作,都必须保证编码一致。
2.2. 查看系统默认字符集以及校验规则
语法:
show variables like 'character_set_database'; #查看系统默认字符集
show variables like 'collation_database'; #查看系统默认校验规则
说明:如果在使用SQL语句创建数据库指定了编码格式,数据库采用指定的编码格式,
如果没在创建数据库指定编码格式,数据库采用系统默认的编码格式。
笔者在配置文件中设置了编码格式为utf-8,因此默认采用都是utf-8格式。
查看系统默认字符集以及校验规则示例:
2.3. 查看数据库支持的字符集
查看指令:
show charset;
查看数据库支持的字符集示例:
数据库支持的字符集都是可以使用的,需要时可以采用。
2.4 查看数据库支持的校验规则
查看指令:
show collation;
查看数据库支持的校验规则示例:
2.5 指明字符集和校验规则创建数据库
在创建数据库时,会默认创建一个文件记录字符集以及校验规则。
方式1:
create database d2 charset=utf8;
方式2:
create database d3 character set utf8;
方式3:
create database d4 charset=utf8 collate utf8_general_ci;
说明:在使用指定字符集和校验规则的创建方式时可以借助数据库的字符集表和校验规则表。
2.6 校验规则对数据库的影响
为了说明校验规则对数据库的影响,采用如下示例,创建两个数据库test1,test2,字符集相同为utf8,test1的校验规则为utf8_general_ci[不区分大小写],test2的校验规则为utf8_bin[区分大小写],插入相同的数据,对其进行数据读取。
采用相同的对比条件读取数据:
对数据库进行排序:
3. 删除数据库
语法:
DROP DATABASE [IF EXISTS] db_ name;
删除数据库示例:
执行删除之后的结果:
- 数据库内部看不到对应的数据库
- 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
注意:不要随意删除数据库
4. 查看数据库
4.1 查看数据库
语法:
show databases;
4.2 显示创建语句
语法:
show create database db_name;
显示创建语句示例:
说明:
- MySQL 建议我们关键字使用大写,但是不是必须的。
- 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
- /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话
4.3 查看当前所处数据库
语法:
select database();
查看当前所处数据库示例:
5. 使用数据库
语法:
use db_name;
使用数据库后,便可以对该数据库内的数据(表)进行各种操作。
使用数据库示例:
6. 修改数据库
语法:
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
修改数据库示例:
7. 备份和恢复
7.1 备份
语法:
# mysqldump -P 端口号 -u 用户名 -p 密码 -B 数据库名 > 数据库备份存储的文件路径
备份示例:
打开备份文件可以发现,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。
备份多个数据库中的表:
# mysqldump -u 用户名 -p 密码 数据库名 表名1 表名2 > 数据库备份存储的文件路径
备份多个数据库:
# mysqldump -u 用户名 -p 密码 -B 数据库名1 数据库名2 ... > 数据库存放路径
- 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。(实际上就是备份文件中没有备份创建数据库操作)
7.2 还原
mysql> source 备份文件路径;
还原示例:
8. 查看连接情况
语法:
show processlist;
查看连接情况示例:
9. 关于数据库操作
数据库操作中最常见用的就是创建数据库的操作,因为对数据库修改和删除是会对后续操作产生影响的,数据库寻找数据依赖于数据名,数据库校验数据于校验规则,修改数据库的名字和校验规则会导致程序错误,删除数据库会将数据库的内容一并删除,可能造成数据缺失。