データベース属性(文字セットと照合順序)を変更する(ALTER DATABASE文)

ALTER DATABASE 文を使って作成済みのデータベースの属性を変更する方法について解説します。現在変更可能な属性はデフォルトの文字セットと照合順序です。

(Last modified: )

データベースの属性を変更する

データベースの属性を変更する方法を確認します。 ALTER DATABASE 文を使います。書式は次の通りです。

ALTER DATABASE [db_name]
    alter_specification ...

alter_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

作成済みのデータベースに対して属性の変更を行えます。現在変更可能な属性はデフォルトの文字セットと照合順序です。

なおデータベースにおけるデフォルトの文字セットというのは、データベースにテーブルを作成した時、文字セットを指定しなかった場合に設定される文字セットです。ALTER DATABASE を使ってデフォルト文字セットを変更しても、作成済みのテーブルの文字セットが変更されません。今後新しくテーブルを作成するときにデフォルトで使用される文字セットが変更されるだけの点に注意してください。

それでは実際に変更してみます。 bookdb データベースのデフォルトの文字セットと照合順序を変更します。現在は次のように文字コードが utf8mb4 、照合順序が utf8mb4_0900_ai_ci となっています。

select SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME from INFORMATION_SCHEMA.SCHEMATA where SCHEMA_NAME = 'bookdb';

データベースの属性を変更する(1)

それでは bookdb データベースのデフォルトの文字コードを cp932 、照合順序を cp932_bin に変更します。次のように実行してください。

alter database bookdb character set cp932 collate cp932_bin;

データベースの属性を変更する(2)

変更が完了しました。それではあらためて cp932 データベースのデフォルトの文字コードと照合順序を確認してみます。

select SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME from INFORMATION_SCHEMA.SCHEMATA where SCHEMA_NAME = 'bookdb';

データベースの属性を変更する(3)

デフォルトの文字コードが cp932 、デフォルトの照合順序が cp932_bin に変更されたのが確認できました。

-- --

作成済みデータベースの属性を変更する手順について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。