上一篇中我们讲到了数据库基础,下面我们接着上篇文章继续看一下字符集和校验规则;上篇文章没有看的话可以先看一下上篇:【MySQL】数据库基础_new出新对象的博客-CSDN博客
在上篇文章中我们使用了windows下的MySQL环境,那么本篇文章的话,会用Linux下的MySQL来给大家进行演示,因为在Linux下方便我们查看数据库以及数据库的结果比较,至于没有Linux环境的朋友们,这里给大家推荐一篇文章来配置一下(虚拟机,服务器的话需要付费,根据个人情况进行选择):VMware虚拟机安装Linux教程(超详细)_linux虚拟机安装_七维大脑的博客-CSDN博客
安装虚拟机或者购买服务器之后可以查看上一篇文章中给大家推荐的Linux下安装MySQL文章进行安装。
1.校验规则对数据库的影响
数据库默认的校验规则其实就是数据库中表格中的依赖规则,也就是说数据库中存储的表格的校验规则和数据库中的校验规则是一致的。
数据库中使用不同的校验规则对数据库是有影响的,下面举两个例子来看一下:
- 不区分大小写
create database db_gc collate utf8_general_ci;
Linux服务器在路径 /var/lib/mysql 下,存储着数据库的数据,而在其db.opt中存储的是当前数据库的字符集和校验规则;这里的话我们可以查看一下db_gc中的字符集和校验规则。
[root@VM-8-15-centos mysql]# cat ./db_gc/db.opt
default-character-set=utf8
default-collation=utf8_general_ci
mysql> create table person(name varchar(20));
Query OK, 0 rows affected (0.09 sec)
mysql> insert into person values('a');
Query OK, 1 row affected (0.01 sec)
mysql> insert into person values('A');
Query OK, 1 row affected (0.00 sec)
mysql> insert into person values('b');
Query OK, 1 row affected (0.01 sec)
mysql> insert into person values('B');
Query OK, 1 row affected (0.00 sec)
mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
| A |
+------+
2 rows in set (0.00 sec)
- 区分大小写
mysql> use db_bin;
Database changed
mysql> create table person(name varchar(20));
Query OK, 0 rows affected (0.03 sec)
mysql> insert into person values('a');
Query OK, 1 row affected (0.01 sec)
mysql> insert into person values('A');
Query OK, 1 row affected (0.01 sec)
mysql> insert into person values('b');
Query OK, 1 row affected (0.02 sec)
mysql> insert into person values('B');
Query OK, 1 row affected (0.00 sec)
mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
+------+
select * from db_bin where name='a';在数据库中就是查找name为a所在行,utf8_bin区分大小写,所以只能查到一个a,没有A。
2.数据库的删除和修改
2.1 数据库的删除
drop database 数据库名; 下面演示删除charset1:
2.2 数据库的修改
数据库的修改一般只是修改所对应的字符集和校验规则,至于数据库名是修改可能会影响上层,现在是不支持的。数据库名错误的话可以直接删除数据库,再重新创建一个数据库即可。
alter database 数据库名 + ;
mysql> alter database db_bin charset=gbk;
Query OK, 1 row affected (0.00 sec)
校验规则:
mysql> alter database db_bin collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
注意:字符集在设置的时候,字符集的校验规则也会更改为与之匹配的校验规则;相同,校验规则更改时字符集也会更改为与之匹配的字符集;可以认为字符集和校验规则是配套使用的。
3.数据库的备份
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
如果没有重定向到文件的话,会把内容打印在命令行。
演示一下备份刚才创建的数据库db_bin:
[root@VM-8-15-centos mysql]# mysqldump -P3306 -u root -p -B db_bin > db_bin.sql
数据的恢复:
登录mysql,source 备份文件。
恢复之后数据库db_bin就可以正常使用了。
【扩展】
数据库的备份备份的是数据库中的数据,还是数据库中的语句?—— 数据库中的语句,只要有创建语句和插入、删除等语句,就能恢复数据库中的数据;我们可以看一下刚才备份的db_bin.sql中的内容是什么。
今天的SQL内容就到这里,各位客官觉得有所收获的话可以点个关注,下篇内容更精彩!