MySQL Server 支持多种字符集。要显示可用的字符集,请使用
INFORMATION_SCHEMA
CHARACTER_SETS
表或
SHOW CHARACTER SET
语句。部分清单如下。有关更完整的信息,请参阅
第 10.10 节,“支持的字符集和排序规则”。
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 |
...
默认情况下,该SHOW CHARACTER SET
语句显示所有可用的字符集。它采用一个可选的LIKE
or
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
orWHERE
子句来指示要显示的排序规则名称。例如,要查看默认字符集
latin1
(cp1252 West European) 的归类,请使用以下语句:
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
含义。
校对 | 意义 |
---|---|
latin1_bin |
二进制根据latin1 编码 |
latin1_danish_ci |
丹麦语/挪威语 |
latin1_general_ci |
多语言(西欧) |
latin1_general_cs |
多语言(ISO 西欧),区分大小写 |
latin1_german1_ci |
德语 DIN-1(字典顺序) |
latin1_german2_ci |
德国 DIN-2(电话簿顺序) |
latin1_spanish_ci |
现代西班牙语 |
latin1_swedish_ci |
瑞典语/芬兰语 |
排序规则具有以下一般特征:
两个不同的字符集不能具有相同的排序规则。
每个字符集都有一个默认排序规则。例如, and 的默认排序规则
latin1
分别utf8
是latin1_swedish_ci
andutf8_general_ci
。该INFORMATION_SCHEMA
CHARACTER_SETS
表和SHOW CHARACTER SET
语句指示每个字符集的默认排序规则。表INFORMATION_SCHEMA
COLLATIONS
和SHOW COLLATION
语句有一列指示每个排序规则是否是其字符集的默认值(Yes
如果是,则为空)。归类名称以与其关联的字符集的名称开头,通常后跟一个或多个表示其他归类特征的后缀。有关命名约定的其他信息,请参阅 第 10.3.1 节,“排序规则命名约定”。
当一个字符集有多个排序规则时,可能不清楚哪种排序规则最适合给定的应用程序。为避免选择不合适的归类,请与代表性数据值进行一些比较,以确保给定的归类按照您期望的方式对值进行排序。