09-数据库字符集和校对规则
数据库的字符集和校对规则在创建数据库的时候指定,也可以在创建完数据库后通过“alter database”命令进行修改。需要注意的是,如果数据库里已经存在数据,因为修改字符集并不能将已有的数据按照新的字符集进行存放,所以不能通过修改数据库的字符集直接修改数据的内容,在9.7小节中通过一个具体的例子介绍了字符集的修改方法。
设置数据库字符集的规则如下:
如果指定了字符集和校对规则,则使用指定的字符集和校对规则;
如果指定了字符集没有指定校对规则,则使用指定字符集的默认校对规则;
如果指定了校对规则但未指定字符集,则字符集使用与该校对规则关联的字符集;
如果没有指定字符集和校对规则,则使用服务器字符集和校对规则作为数据库的字符集和校对规则。
推荐在创建数据库时明确指定字符集和校对规则,避免受到默认值的影响。要显示当前数据库的字符集和校对规则,可以使用“show variables like ' characterset database '”和“show variables like ' collation_database '”命令查看:
mysql> show variables like 'character_set_database';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| character_set_database | utf8 |
+------------------------+-------+
1 row in set (0.00 sec)
mysql> show variables like 'collation_database';
+--------------------+-----------------+
| Variable_name | Value|
+--------------------+-----------------+
| collation_database | utf8_general_ci |
+--------------------+-----------------+
1 row in set (0.00 sec)