MySQL 中的字符集和排序规则
Eijux(讨论 | 贡献)2021年3月27日 (六) 23:56的版本 (建立内容为“category:MySQL == 关于 == MySQL Server 支持多种字符集。 要显示可用的字符集,请使用“'''INFORMATION_SCHEMA'''”的“'''CHARACTER_…”的新页面)
关于
MySQL Server 支持多种字符集。
要显示可用的字符集,请使用“INFORMATION_SCHEMA”的“CHARACTER_SETS”表或“SHOW CHARACTER SET”语句。
- 默认情况下,“SHOW CHARACTER SET”语句显示所有可用字符集。它带有一个可选的“LIKE”或“WHERE”子句,该子句指示要匹配的字符集名称:
mysql> SHOW CHARACTER SET LIKE 'latin%'; +---------+-----------------------------+-------------------+--------+ | Charset | Description | Default collation | Maxlen | +---------+-----------------------------+-------------------+--------+ | latin1 | cp1252 West European | latin1_swedish_ci | 1 | | latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 | | latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 | | latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 | +---------+-----------------------------+-------------------+--------+
给定的字符集始终至少具有一个排序规则,大多数字符集具有多个排序规则。要列出字符集的显示归类,请使用“INFORMATION_SCHEMA”的“COLLATIONS”表或“SHOW COLLATION”语句。
- 默认情况下,“SHOW COLLATION”语句显示所有可用的排序规则。它带有一个可选的“LIKE”或“WHERE”子句,该子句指示要显示的排序规则名称。
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 | +-------------------+---------+----+---------+----------+---------+
排序规则一般具有以下特征:
- 两种不同的字符集不能具有相同的排序规则。
- 每个字符集都有一个“默认排序规则”。
- 例如,latin1 和 utf8 的默认排序规则分别为 latin1_swedish_ci 和 utf8_general_ci 。
- “INFORMATION_SCHEMA”的“CHARACTER_SET”表和“SHOW CHARACTER SET”语句指示每个字符集的默认排序规则。
- “INFORMATION_SCHEMA”的“COLLATIONS”表和“SHOW COLLATION”语句具有一列,该列指示每个排序规则是否为其字符集的默认字符集(如果是Yes,则为空)。
- 排序规则名称以它们所关联的字符集的名称开头,通常后跟一个或多个后缀,以表示其他排序规则特征。