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