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


10.3.4 テーブル文字セットおよび照合順序

各テーブルにはテーブル文字セットとテーブル照合順序があります。 CREATE TABLE および ALTER TABLE ステートメントには、テーブル文字セットおよび照合順序を指定するためのオプション句があります。

CREATE TABLE tbl_name (column_list)
    [[DEFAULT] CHARACTER SET charset_name]
    [COLLATE collation_name]]

ALTER TABLE tbl_name
    [[DEFAULT] CHARACTER SET charset_name]
    [COLLATE collation_name]

例:

CREATE TABLE t1 ( ... )
CHARACTER SET latin1 COLLATE latin1_danish_ci;

MySQL では、テーブル文字セットとテーブル照合順序が次のように選択されます。

  • CHARACTER SET charset_nameCOLLATE collation_name の両方が指定されている場合、文字セット charset_name と照合順序 collation_name が使用されます。

  • CHARACTER SET charset_nameCOLLATE なしで指定されている場合、文字セット charset_name とそのデフォルトの照合順序が使用されます。 各文字セットのデフォルトの照合順序を確認するには、SHOW CHARACTER SET ステートメントを使用するか、INFORMATION_SCHEMA CHARACTER_SETS テーブルをクエリーします。

  • COLLATE collation_nameCHARACTER SET なしで指定されている場合は、collation_name および照合 collation_name に関連付けられた文字セットが使用されます。

  • それ以外の場合 (CHARACTER SETCOLLATE も指定されていない場合)、データベース文字セットと照合順序が使用されます。

個々のカラム定義でカラム文字セットおよび照合順序が指定されていない場合は、テーブル文字セットおよび照合順序がカラム定義のデフォルト値として使用されます。 テーブル文字セットおよび照合順序は MySQL の拡張機能です。このような機能は標準 SQL には存在しません。


関連キーワード:  文字, セット, 照合, 順序, テーブル, COLLATE, CHARACTER, collation, サポート, charset