MySQL 8.0 リファレンスマニュアル


10.3.1 照合の命名規則

MySQL 照合順序名は、次の規則に従います:

  • 照合順序名は、関連付けられている文字セットの名前で始まり、通常は、他の照合順序特性を示す 1 つ以上の接尾辞が続きます。 たとえば、utf8mb4_general_cilatin1_swedish_ci は、それぞれ utf8mb4latin1 の文字セットの照合順序です。 binary 文字セットには、接尾辞のない単一の照合順序 (binary とも呼ばれる) があります。

  • 言語固有の照合には、ロケールコードまたは言語名が含まれます。 たとえば、トルコ語とハンガリー語のルールをそれぞれ使用して、utf8mb4 文字セットの utf8mb4_tr_0900_ai_ci および utf8mb4_hu_0900_ai_ci ソート文字をソートします。utf8mb4_turkish_ciutf8mb4_hungarian_ci は似ていますが、Unicode 照合アルゴリズムの新しいバージョンに基づいています。

  • 照合接尾辞は、照合で大/小文字が区別されるか、アクセントが区別されるか、またはカナが区別されるか (またはその一部の組合せ)、あるいはバイナリかを示します。 次のテーブルに、これらの特性を示すために使用される接尾辞を示します。

    表 10.1 照合サフィクスの意味

    サフィックス 意味
    _ai アクセントを区別しない
    _as アクセントを区別する
    _ci 大文字小文字を区別しない
    _cs Case-sensitive
    _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 照合順序の違いについては、セクション10.8.5「バイナリ照合順序と_bin 照合順序」 を参照してください。

  • Unicode 文字セットの照合順序名には、照合順序の基になる Unicode 照合アルゴリズム (UCA) のバージョンを示すバージョン番号を含めることができます。 名前にバージョン番号が含まれていない UCA ベースの照合では、version-4.0.0 UCA の重みキーが使用されます。 例:

  • Unicode 文字セットの場合、xxx_general_mysql500_ci 照合順序では、元の xxx_general_ci 照合順序の 5.1.24 以前の順序が保持され、MySQL 5.1.24 より前に作成されたテーブルのアップグレードが許可されます (Bug #27877)。


関連キーワード:  照合, 文字, セット, 順序, 区別, utf, バイナリ, リファレンス, アクセント, サポート