文字セットと照合順序の設定

広告

テーブルの文字セットと照合順序を設定する方法を確認します。書式は次の通りです。

CREATE TABLE db_name.tbl_name
  (col_name1 data_type1, col_name2 data_type2, ...
) CHARACTER SET charset_name COLLATE collation_name;

テーブルで使用する文字セットと照合順序を指定します。文字セットが指定されなかった場合は、データベースで設定されているデフォルト文字セットが使用されます。(データベースにも設定されていなければMySQLサーバのデフォルト文字セットが使われます。詳しくは「文字セットと照合順序を指定してデータベースを作成」を参照して下さい)。

また文字セットだけを指定し照合順序を指定しなかった場合は、文字セットのデフォルトの照合順序が使用されます。

文字セットの指定

では実際に試してみます。まずは文字セットだけを設定します。(MySQLで設定可能な文字セットについては「文字セットと照合順序」を参照して下さい)。

mysql> create table cp932_table(id int) character set cp932;

p14-1

作成したテーブル名と同じ構造のテーブルを作成するのに必要なCREATE TABLE文を表示してみます。

p14-2

文字セットがcp932となっています。照合順序はデフォルトの値が使われる場合は表示されませんが、テーブルの詳細情報を表示してみると確認することができます。

p14-3

「Collation: cp932_japanese_ci」となっており、cp932文字セットのデフォルト照合順序となっていることが確認できます。

文字セットと照合順序の指定

今度は文字セットに加えて照合順序も設定します。

mysql> create table eucjpms_table(id int)
    -> character set eucjpms collate eucjpms_bin;

p14-4

作成したテーブル名と同じ構造のテーブルを作成するのに必要なCREATE TABLE文を表示してみます。

p14-5

文字セットがeucjpms、照合順序がeucjpms_binとなっていますテーブルの詳細情報も念のために表示してみます。

p14-6

「Collation: eucjpms_bin」となっており、eucjpms文字セットのデフォルト照合順序であるeucjpms_japanese_ciではなく設定したeucjpms_binとなっていることが確認できます。

( Written by Tatsuo Ikura )