MySQL 中的字符集和排序规则

来自Wikioe
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,则为空)。
  • 排序规则名称以它们所关联的字符集的名称开头,通常后跟一个或多个后缀,以表示其他排序规则特征。

字符集库

UTF-8(用于元数据)