各テーブルにはテーブルキャラクタセットとテーブル照合順序があります。CREATE
TABLE
およびALTER
TABLE
ステートメントには、テーブルのキャラクタセットと照合順序を指定するためのオプション節があります。
CREATE TABLEtbl_name
(column_list
) [[DEFAULT] CHARACTER SETcharset_name
] [COLLATEcollation_name
]] ALTER TABLEtbl_name
[[DEFAULT] CHARACTER SETcharset_name
] [COLLATEcollation_name
]
例:
CREATE TABLE t1 ( ... ) CHARACTER SET latin1 COLLATE latin1_danish_ci;
MySQL では、テーブルキャラクタセットとテーブル照合順序が次のように選択されます。
CHARACTER SET
とX
COLLATE
の両方を指定した場合は、キャラクタセットY
X
と照合順序Y
。
CHARACTER SET
を指定し、X
COLLATE
を指定しなかった場合は、キャラクタセットX
とそのデフォルト照合順序。
COLLATE
を指定し、Y
CHARACTER
SET
を指定しなかった場合は、Y
関連のキャラクタセットと照合順序Y
。
その他の場合は、データベースキャラクタセットとデータベース照合順序。
カラムのキャラクタセットと照合順序が個別のカラム定義に指定されていない場合、テーブルのキャラクタセットと照合順序はデフォルト値として使用されます。テーブルのキャラクタセットと照合順序は MySQL 拡張であり、同等の機能は標準 SQL に存在しません。