文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


12.3.1 校對命名慣例

MySQL 校對名稱遵循以下慣例

  • 校對名稱以其關聯的字元集名稱開頭,通常後接一個或多個尾碼,指示其他校對特性。例如,utf8mb4_0900_ai_cilatin1_swedish_ci 分別是 utf8mb4latin1 字元集的校對。binary 字元集有一個名為 binary 的單一校對,沒有尾碼。

  • 特定於語言的校對包括地區設定代碼或語言名稱。例如,utf8mb4_tr_0900_ai_ciutf8mb4_hu_0900_ai_ci 分別使用土耳其語和匈牙利語的規則,對 utf8mb4 字元集的字元進行排序。utf8mb4_turkish_ciutf8mb4_hungarian_ci 類似,但基於較舊版本的 Unicode 校對演算法。

  • 校對尾碼指示校對是否區分大小寫、區分重音符號、區分假名 (或其組合) 或二進位。下表顯示用於指示這些特性的尾碼。

    表 12.1 校對尾碼的含義

    尾碼 含義
    _ai 不區分重音符號
    _as 區分重音符號
    _ci 不區分大小寫
    _cs 區分大小寫
    _ks 區分假名
    _bin 二進位

    對於未指定重音符號敏感度的非二進位校對名稱,它由大小寫敏感度決定。如果校對名稱不包含 _ai_as,則名稱中的 _ci 暗示 _ai,而名稱中的 _cs 暗示 _as。例如,latin1_general_ci 明確地不區分大小寫,並隱含地不區分重音符號,latin1_general_cs 明確地區分大小寫,並隱含地區分重音符號,而 utf8mb4_0900_ai_ci 明確地不區分大小寫和重音符號。

    對於日語校對,_ks 尾碼指示校對區分假名;也就是說,它區分片假名和假名。沒有 _ks 尾碼的日語校對不區分假名,並將片假名和假名視為排序的相同字元。

    對於 binary 字元集的 binary 校對,比較基於數字位元組值。對於非二進位字元集的 _bin 校對,比較基於數字字元代碼值,這對於多位元組字元與位元組值不同。有關 binary 字元集的 binary 校對與非二進位字元集的 _bin 校對之間差異的資訊,請參閱第 12.8.5 節, 「二進位校對與 _bin 校對的比較」

  • Unicode 字元集的校對名稱可能包含版本號,以指示校對所基於的 Unicode 校對演算法 (UCA) 版本。名稱中沒有版本號的基於 UCA 的校對使用版本 4.0.0 的 UCA 權重金鑰。例如

  • 對於 Unicode 字元集,xxx_general_mysql500_ci 校對保留了原始 xxx_general_ci 校對的 5.1.24 之前的排序,並允許為在 MySQL 5.1.24 之前建立的資料表進行升級 (錯誤 #27877)。