Documentation Home

10.3.1 归类命名约定

MySQL 排序规则名称遵循以下约定:

  • 归类名称以与其关联的字符集的名称开头,通常后跟一个或多个表示其他归类特征的后缀。例如,utf8_general_ci和 分别是和 字符集latin1_swedish_ci的排序规则 。字符集 有一个排序规则,也名为 ,没有后缀。 utf8latin1binarybinary

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

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

    表 10.1 归类后缀含义

    后缀 意义
    _ai 口音不敏感
    _as 口音敏感
    _ci 不区分大小写
    _cs 区分大小写
    _bin 二进制

    对于未指定区分重音的非二进制排序规则名称,由区分大小写决定。如果排序规则名称不包含_aior _as_ciin the name implys_ai_csin the name implies _as。例如, latin1_general_ci显式不区分大小写,隐式不区分重音,显式区分大小写,隐式区分 latin1_general_cs重音。

    对于字符集的binary排序规则 binary,比较是基于数字字节值。对于 _bin非二进制字符集的排序规则,比较基于数字字符代码值,这与多字节字符的字节值不同。有关字符集排序规则与非二进制字符集排序规则之间差异的信息 , binary请 参阅第 10.8.5 节,“二进制排序规则与 _bin 排序规则的比较”binary_bin

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

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