字符集
字符集表示存储到数据库的字符以何种格式编码(所谓编码指的是字符映射到二进制数据的过程,解码则是对应的逆操作)以及支持的编码字符范围,常见的字符集有 ASCII
、ISO 8859-1
(在 ASCII
字符集上进行扩展,对应 MySQL
中的 latin1
)、GBK
、UTF8
等,在 MySQL
中可以通过 show charset
命令查看系统支持的所有字符集:
可以看到 utf8 的 Maxlen 为 3,utf8mb4 的 Maxlen 为 4
排序规则
而排序规则(或者叫做比较规则)表示存储到数据库的字符以何种方式比较大小进行排序,如果没有指定排序规则,每个字符集有着默认的排序规则,见上图 Default collation
字段,雌此外,你也可以通过 show collation
命令查看 MySQL 支持的所有排序规则:
排序规则都有固定的格式:字符集_语言_后缀
-
字符集表示字符对应的编码字符集,对应前面指定的
charset
设置,即某个字符集需要使用与之对应的排序规则; -
语言表示使用的自然语言,比如
spanish
、polish
等,general
则是通用的; -
后缀一般是
ci
,表示排序比较的时候字符不区分大小写,如果是cs
则表示区分大小写,上图中还可以看到bin
后缀,表示以二进制格式比较,通常我们都使用ci
。