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

作成済みのデータベースに対してデフォルトの文字セットと照合順序をあとから変更することができます。ここでは MariaDB で ALTER DATABASE 文を使いデータベースの属性を変更する方法について解説します。

(Last modified: )

データベースの文字セットと照合順序を変更する

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

ALTER {DATABASE | SCHEMA} [db_name]
    alter_specification ...
ALTER {DATABASE | SCHEMA} db_name
    UPGRADE DATA DIRECTORY NAME

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

作成済みのデータベースに対して属性の変更を行えます。データベースディレクトリ名の変更なども行えますが、今回はデフォルトの文字セットと照合順序を変更する方法について解説します。実際に使用するのは次の構文となります。

ALTER DATABASE db_name
  CHARACTER SET charset_name
  COLLATE collation_name

データベースにおける文字セットと照合順序については「文字セットと照合順序を指定してデータベースを作成する」を参照されてください。

それでは実際に変更してみます。まず最初に mydb というデータベースをデフォルトの文字セットや照合順序を指定せずに作成します。

create database mydb;

データベースの文字セットと照合順序を変更する(1)

作成したデータベースに設定されているデフォルトの文字セットと照合順序を確認します。次のように実行してください。

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

データベースの文字セットと照合順序を変更する(2)

現在は文字セットが utf8mb4 、照合順序が utf8mb4_general_ci に設定されています。

照合順序だけを変更する

最初に照合順序のみ変更してみます。次のように実行してください。

alter database mydb collate utf8mb4_bin;

データベースの文字セットと照合順序を変更する(3)

照合順序を utf8mb4_general_ci から utf8mb4_bin へ変更しました。それでは再度データベースに設定されているデフォルトの文字セットと照合順序を確認してみます。

データベースの文字セットと照合順序を変更する(4)

文字セットは utf8mb4 のままで、照合順序が utf8mb4_bin に変更されていることが確認できました。

文字セットと照合順序を変更する

次に文字セットと照合順序の両方を変更してみます。次のように実行してください。

alter database mydb character set cp932 collate cp932_bin;

データベースの文字セットと照合順序を変更する(5)

文字セットを cp932 、照合順序を cp932_bin へ変更しました。それでは再度データベースに設定されているデフォルトの文字セットと照合順序を確認してみます。

データベースの文字セットと照合順序を変更する(6)

文字セットが cp932 、照合順序が cp932_bin に変更されていることが確認できました。

-- --

MariaDB で ALTER DATABASE 文を使いデータベースの属性を変更する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

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