以下介绍mysql四个级别的字符集和比较规则
1.服务器级别
mysql> show variables like '%server';
+----------------------+-------------+
| Variable_name | Value |
+----------------------+-------------+
| character_set_server | utf8mb4 | 服务器字符集
| collation_server | utf8mb4_bin | 服务器比较规则
+----------------------+-------------+
2 rows in set (0.00 sec)
以上参数可以在运行时用set语句进行修改,也可以在配置文件进行配置
[server]
character_set_server=utf8mb4
collation_server=utf8mb4_bin
2.数据库级别
mysql> show variables like '%database';
+------------------------+-------------+
| Variable_name | Value |
+------------------------+-------------+
| character_set_database | utf8mb4 |
| collation_database | utf8mb4_bin |
| skip_show_database | OFF |
+------------------------+-------------+
3 rows in set (0.00 sec)
以上参数只能通过在创建数据库时指定,不能进行修改
3.表级别
表级别的字符集在创建表时没有制定就用所在库级别的字符集,如果有指定就用创建时的字符集,也可以后期修改表的字符集
alter table character set 字符集名称 collation 比较规则
4.列级别
同样在创建表时可已指定列的字符集,没有制定就用表的,同样可以进行后期修改