CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_specification] ...
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
CREATE DATABASE
は、指定された名前を持つデータベースを作成します。このステートメントを使用するには、このデータベースに対する CREATE
権限が必要です。CREATE SCHEMA
は CREATE DATABASE
のシノニムです。
そのデータベースが存在するときに IF NOT EXISTS
を指定しなかった場合は、エラーが発生します。
MySQL 5.6 では、アクティブな LOCK TABLES
ステートメントが存在するセッション内では CREATE DATABASE
が許可されません。
create_specification
オプションは、データベースの特性を指定します。データベースの特性は、データベースディレクトリ内の db.opt
ファイルに格納されます。CHARACTER SET
句は、デフォルトのデータベース文字セットを指定します。COLLATE
句は、デフォルトのデータベース照合順序を指定します。セクション10.1「文字セットのサポート」では、文字セットと照合順序名について説明しています。
MySQL でのデータベースは、そのデータベース内のテーブルに対応するファイルを含むディレクトリとして実装されます。データベースが最初に作成されたとき、その中にはテーブルが存在しないため、CREATE DATABASE
ステートメントは、MySQL データディレクトリの下のディレクトリと db.opt
ファイルのみを作成します。許可されるデータベース名のルールは、セクション9.2「スキーマオブジェクト名」に示されています。データベース名に特殊文字が含まれている場合は、セクション9.2.3「識別子とファイル名のマッピング」で説明されているように、その文字のエンコードされたバージョンがデータベースディレクトリの名前に含まれます。
データディレクトリの下に (たとえば、mkdir で) ディレクトリを手動で作成すると、サーバーはそれをデータベースディレクトリと見なし、SHOW DATABASES
の出力に表示します。
mysqladmin プログラムを使用してデータベースを作成することもできます。セクション4.5.2「mysqladmin — MySQL サーバーの管理を行うクライアント」を参照してください。