2-4.MySQLにデータベースを作成する

2019年7月15日

MySQLにデータベースを作成する方法を説明します。
MySQLでいうデータベースはOracleみたいに独立したデータベースのインスタンスが作成されるわけではなく、データベース=スキーマとなります。
(Oracleの場合はデータベースインスタンスの中にスキーマが複数作成されます)

MySQLでは、ユーザー管理もデータベースを複数作成しても同じユーザーが使用されますので、権限付けで切り分ける必要があります。

但し、物理データセットはデータベース単位で作成されますので、障害時の影響は切り分けられますので若干は救われることになります。

それでもデータベースの管理情報はデータベースで共通なのでバックアップ等はしっかりしておくことが重要です。

1.データベースを作成する。

1)コマンド説明

MySQLにおいてデータベースを作成するには、MySQLモニタで接続した後に以下のコマンドで行います。

【構文】
CREATE DATABASE [データベース名];

2)実行例

以下は「STUDYDB」というデータベースを作成する例です。

mysql> CREATE DATABASE STUDYDB;
Query OK, 1 row affected (0.02 sec)
mysql>

 

スポンサードサーチ

2.指定したデータベースが既存かどうか確認して作成する

作成するデータベースの存在有無を確認しつつ、無ければ作成する方法です。

1)コマンド説明

データベースを作成する際に、指定したデータベースが既に存在していた場合は重複エラーになります。

<<重複エラーとなる実行結果>>

mysql> CREATE DATABASE STUDYDB;
ERROR 1007 (HY000): Can't create database 'studydb'; database exists
mysql>

スクリプトに組み込んで処理する場合などエラーが発生するのは都合が悪いケースもあります。
(もちろんエラーにした方が都合がいいケースもありますが)
この場合、指定したデータベースが存在しない場合にのみ作成するという指定が出来ます。

【構文】
CREATE DATABASE IF NOT EXISTS [データベース名];

2)実行例

「STUDYDB」というデータベースを存在確認しつつ作成する。

mysql> CREATE DATABASE IF NOT EXISTS STUDYDB;
Query OK, 1 row affected (0.02 sec)
mysql>

 

既にデータベースが存在する状況でもう一度CREATE DATABASEした実行結果

mysql> CREATE DATABASE STUDYDB;
Query OK, 1 row affected (0.02 sec)
mysql>
mysql> CREATE DATABASE IF NOT EXISTS STUDYDB;
Query OK, 1 row affected, 1 warning (0.00 sec)  
mysql>

スポンサードサーチ

3.文字コードを指定してデータベースを作成する

1)コマンド説明

データベースのデフォルトの文字コードを指定して作成するにはオプションで指定します。

【構文】
CREATE DATABASE [データベース名] CHARACTER SET [文字コード];

2)実行例

「STUDYDB」というデータベースを文字コード「utf8」で作成する。

mysql> CREATE DATABASE STUDYDB CHARACTER SET utf8;
Query OK, 1 row affected (0.02 sec)
mysql>

UTF8の文字コードがデフォルトのデータベースが作成されました。