各テーブルにはテーブル文字セットとテーブル照合順序があります。 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_name
COLLATE
の両方が指定されている場合、文字セットcollation_name
charset_name
と照合順序collation_name
が使用されます。CHARACTER SET
がcharset_name
COLLATE
なしで指定されている場合、文字セットcharset_name
とそのデフォルトの照合順序が使用されます。 各文字セットのデフォルトの照合順序を確認するには、SHOW CHARACTER SET
ステートメントを使用するか、INFORMATION_SCHEMA
CHARACTER_SETS
テーブルをクエリーします。COLLATE
がcollation_name
CHARACTER SET
なしで指定されている場合は、collation_name
および照合collation_name
に関連付けられた文字セットが使用されます。それ以外の場合 (
CHARACTER SET
もCOLLATE
も指定されていない場合)、データベース文字セットと照合順序が使用されます。
個々のカラム定義でカラム文字セットおよび照合順序が指定されていない場合は、テーブル文字セットおよび照合順序がカラム定義のデフォルト値として使用されます。 テーブル文字セットおよび照合順序は MySQL の拡張機能です。このような機能は標準 SQL には存在しません。