3.1 字符集和比较规则简介
-
字符集简介:
-
字符集:用于描述某个字符范围的编码规则。包括字符映射和编码规则的定义。
-
编码和解码:将字符映射成二进制数据的过程称为编码,反之则为解码。
-
-
比较规则简介:
-
二进制比较规则:直接比较字符的二进制编码。
-
非二进制比较规则:考虑大小写、特殊字符等,常用于现实中的字符集。
-
-
常用字符集:
-
ASCII:收录128个字符,包括空格、标点符号、数字、大小写字母和一些不可见字符。
-
ISO 8859-1(latin1):在ASCII基础上扩展了128个西欧常用字符。
-
GB2312:收录汉字、拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母等。
-
3.2 MySQL字符集和比较规则
-
字符集:
-
Server、Database、Table和Column级别的字符集:MySQL支持在不同级别设置字符集。
-
默认字符集:服务器启动时可以通过配置文件或启动选项指定默认字符集。
-
-
比较规则:
-
默认比较规则:每个字符集都有一个默认的比较规则,但可以在不同级别进行自定义。
-
-
3.3 设置字符集和比较规则的命令
查看当前字符集和比较规则:
SHOW VARIABLES LIKE 'character_set_%'; SHOW VARIABLES LIKE 'collation_%';
设置字符集和比较规则:
SET NAMES 'utf8mb4' COLLATE 'utf8mb4_general_ci';
修改数据库或表的字符集和比较规则:
ALTER DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;xxxxxxxxxx sql