查看mysql支持的字符集:
mysql> SHOW CHARACTER SET;
+----------+---------------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
...
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
...
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
...
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
...
| binary | Binary pseudo charset | binary | 1 |
...
,查看字符集支持的排序规则:
mysql> SHOW COLLATION WHERE Charset = 'latin1';
+-------------------+---------+----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+-------------------+---------+----+---------+----------+---------+
| latin1_german1_ci | latin1 | 5 | | Yes | 1 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 |
| latin1_danish_ci | latin1 | 15 | | Yes | 1 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 1 |
| latin1_general_ci | latin1 | 48 | | Yes | 1 |
| latin1_general_cs | latin1 | 49 | | Yes | 1 |
| latin1_spanish_ci | latin1 | 94 | | Yes | 1 |
+-------------------+---------+----+---------+----------+---------+
ASCII:包含Unicode 码中U+0000 to U+007F 范围的字符
UNICODE:包含Unicode码中U+0000 to U+10FFFF范围的字符
可以看出,ASCII 是UNICODE 的子集。
排序规则大小写敏感后缀
| 后缀 | 备注 |
|---|---|
| _ai | 重音不敏感 |
| _as | 重音敏感 |
| _ci | 大小写不敏感 |
| _cs | 大小写敏感 |
| _bin | 二进制 |
_ci 暗含_ai,_cs 暗含_as。
对于二进制字符集的二进制排序规则,是基于字节值比较;对于非二进制字符集的_bin 排序规则,比较是基于字符的数字之,这和多字节字符的字节值不一样。
本文介绍了MySQL支持的各种字符集及其对应的排序规则,详细解释了不同字符集的特点,如ASCII与Unicode的关系,以及各种排序规则的区别,例如大小写敏感性和重音敏感性等。
326

被折叠的 条评论
为什么被折叠?



