在MySQL基础篇(一)中,我们知道了如何创建数据库,这篇文章带大家了解创建的一些细节。
红色框:可省略,作用如果存在相同的数据库名称,就不会再创建,反之,创建。
蓝色框:COLLATE:指定数据库字符集的校验规则
CHARACTER SET:指定数据库采用的字符集
存储时,数据库会利用设置的字符集进行存储,读取时,必须采用对应的校验规则进行读取,否则可能会出错。
下面就带大家了解字符集和校验规则是如何设置以及字符集有什么影响。
创建时,没有指明字符集和校验规则,系统默认采用:字符集:utf8,校验规则:utf8_general_ci。

创建一个使用utf字符集,并带校验规则。

如何查看系统默认的字符集以及校验规则:
cpp
show variables like 'character_set_database';//字符集
show variables like 'collation_database';//校验规则

如何查看数据库支持的字符集:
cpp
show charset;
字符集主要是控制用什么语言。比如utf8就可以使用中文。
如何查看数据库支持的字符集校验规则:
cpp
show collation;
校验规则对数据库的影响:
首先,我们需要了解校验规则的特性,utf8_general_ci(不区分大小写),utf8_bin(区分大小写)。
如何验证呢?
我们分别用上述校验规则创建数据库,进行存储数据,再将数据提取,看有没有区别。



那我们就查询单个字符,看区不区分大小写。

上面现象就是不同的库的校验集规则,表现出的不同形式。注意这是针对整个数据库的,同一个数据库中存的数据,都遵循这个数据库的字符集和校验规则。