各テーブルにはテーブルキャラクタセットとテーブル照合順序があります。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
とXCOLLATE
の両方を指定した場合は、キャラクタセットYXと照合順序Y。
CHARACTER SET
を指定し、XCOLLATEを指定しなかった場合は、キャラクタセットXとそのデフォルト照合順序。
COLLATE
を指定し、YCHARACTER
SETを指定しなかった場合は、Y関連のキャラクタセットと照合順序Y。
その他の場合は、データベースキャラクタセットとデータベース照合順序。
カラムのキャラクタセットと照合順序が個別のカラム定義に指定されていない場合、テーブルのキャラクタセットと照合順序はデフォルト値として使用されます。テーブルのキャラクタセットと照合順序は MySQL 拡張であり、同等の機能は標準 SQL に存在しません。
