10.3.1 整理命名约定

MySQL 归类名称遵循以下约定:

  • 归类名称以与其关联的字符集的名称开头,通常后跟一个或多个后缀,以指示其他归类 Feature。例如,utf8_general_cilatin1_swedish_ci分别是utf8latin1字符集的排序规则。 binary字符集具有单个排序规则,也称为binary,没有后缀。

  • 特定于语言的归类包括语言名称。例如,utf8字符集的utf8_turkish_ciutf8_hungarian_ci使用土耳其语和匈牙利语规则分别对字符进行排序。

  • 排序规则后缀指示排序规则是区分大小写,区分重音还是假名敏感(或其某种组合)还是二进制。下 table 显示了用于指示这些特性的后缀。

table10.1 排序规则后缀的含义

SuffixMeaning
_aiAccent-insensitive
_asAccent-sensitive
_ciCase-insensitive
_csCase-sensitive
_binBinary

对于未指定重音符号敏感性的非二进制排序规则名称,它由区分大小写确定。如果排序规则名称不包含_ai_as,则名称中的_citable 示_ai,名称中的_cstable 示_as。例如,latin1_general_ci显式不区分大小写,并且隐含变音,而latin1_general_cs显式不区分大小写,并且隐含变音。

对于binary字符集的binary归类,比较基于数字字节值。对于非二进制字符集的_bin排序规则,比较基于数字字符代码值,该值不同于多字节字符的字节值。有关binary字符集的binary归类和非二进制字符集的_bin归类之间的区别的信息,请参见第 10.8.5 节“与_bin 归类相比的二进制归类”

  • Unicode 字符集的归类名称可以包括版本号,以指示归类所基于的 Unicode 归类算法(UCA)的版本。名称中没有版本号的基于 UCA 的归类使用版本 4.0.0 UCA 配重键。例如:

  • utf8_unicode_520_ci基于 UCA 5.2.0 配重键(http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt)。

  • 对于 Unicode 字符集,xxx_general_mysql500_ci归类保留原始xxx_general_ci归类在 5.1.24 之前的 Sequences,并允许升级在 MySQL 5.1.24 之前创建的 table(错误#27877)。