【MySQL】データベースの作成をしてみよう!(CREATE DATABASE文)

MySQL

MySQLをインストールした後に最初に行うのが、データベースを作成を行います。
データベースを作成するために実行するSQLが「CREATE DATABASE文」になります。
この記事では、「CREATE DATABASE文」でデータベースを作成する方法からデータベースの設定までを説明していきたいと思います。

MySQLがインストールされていない場合は、Macの場合は以下記事を参考にインストールを行なってください。

データベースの作成方法

CREATE DATABASE文の構文

データベースの作成を行う際のSQLの構文は以下になります。

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] [データベース名]
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] [文字コード]
  | COLLATE [=] collation_name
  | ENCRYPTION [=] {'Y' | 'N'}
}

上記構文で最小構成のSQLはこちらになります。

CREATE DATABASE [データベース名];

上記SQLを実行して以下のような表示があれば正常に登録が完了になります。

Query OK, 1 row affected (0.02 sec)

作成するデータベースと同一のデータベース名がある場合には、以下のようなエラーメッセージが表示されます。

ERROR 1007 (HY000): Can't create database '[データベース名]'; database exists

CREATE DATABASE文のオプション

データベースが存在する場合のみ作成(IF NOT EXISTS)

同一名のデータベースが存在する可能性がある場合は、CREATE文に「IF NOT EXISTS」オプションを指定することにより、同一名が存在しない場合のみ新規で作成することが出来ます。

CREATE DATABASE IF NOT EXISTS [データベース名];

データベースで指定する文字コードの設定方法(CHARACTER SET)

データベース作成時の文字コードをCREATE文に「CHARACTER SET」を指定することによって設定することが出来ます。
指定を行わない場合は、MySQLサーバに設定されているデフォルトの文字コードが設定されます。

CREATE DATABASE [データベース名] CHARACTER SET [文字コード];
MySQLサーバに設定されているデフォルトの文字コードの確認方法

以下SQLを実行することによりデフォルトの文字コードを確認することが出来ます。

show variables like "character_set_server";
データベースに設定できる文字コードの確認方法

以下SQLを実行することによりデータベースに設定出来る文字コードを一覧表示することが出来ます。

show character set;

データベースがソートを行う際の照合順序の設定方法(COLLATE)

データベース作成時の照合順序をCREATE文に「COLLATE」を指定することによって設定することが出来ます。
指定を行わない場合は、MySQLサーバに設定されているデフォルトの照合順序が設定されます。
デフォルトの照合順序はデータベースの文字コード毎に異なり「show character set」でデフォルトを確認することが出来ます。

CREATE DATABASE [データベース名] COLLATE [照合順序]
データベースに設定できる照合順序の確認方法

以下SQLを実行することによりデータベースに設定出来る照合順序を一覧表示することが出来ます。

show collation where charset = [文字コード];

データベースの透過的データ暗号化設定方法(ENCRYPTION)

データベースに保存されるデータを暗号化する設定になります。
データベース作成時にCREATE文に「ENCRYPTION」を指定することによって設定することが出来ます。
設定値は「Y」「N」を指定できます。

※データベース自体に設定する方法は、MySQL 8.0.16から追加されました。
※テーブルに設定する方法は、MySQL 5.7.11から追加されました。

CREATE DATABASE [データベース名] ENCRYPTION [設定するか?]

コメント

タイトルとURLをコピーしました