CREATE DATABASE 構文

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification [create_specification] ...]

create_specification:
    [DEFAULT] CHARACTER SET charset_name
  | [DEFAULT] COLLATE collation_name

CREATE DATABASE は、与えられた名前でデータベースを作成します。このステートメントを利用する為には、データベースに CREATE 権限が必要です。CREATE SCHEMACREATE DATABASE の同義語です。

もしデータベースが存在し、IF NOT EXISTS を指定しなかった場合、エラーが発生します。

create_specification オプションはデータベースの特徴を指定します。データベースの特徴は、データベース ディレクトリの db.opt ファイルに格納されています。CHARACTER SET 条項はデフォルト データベースの文字セットを指定します。COLLATE 条項はデフォルト データベースの照合を指定します。章 9. キャラクタセットサポートは文字セットと照合名を検討します。

MySQL 内のデータベースは、その中のテーブルに対応するディレクトリとして実行されます。最初にデータベースが作成された時にはその中にはテーブルが無いので、CREATE DATABASE ステートメントが、MySQL データディレクトリ下にディレクトリと db.opt ファイルだけを作成します。項8.2. 「識別子」 に許可されたデータベース名のルールが紹介されています。もしデータベース名が特別な文字を含んでいる場合、その名前は項 「ファイル名への識別子のマッピング」に表されているようにそれらの文字が暗号化された形を含んだ物になります。

もしデータ ディレクトリ下にディレクトリを手動で作成したら(例えば mkdirを利用して)、サーバはそれをデータベース ディレクトリとみなし、SHOW DATABASES のアウトプット内に現れます。

データベースを作成する為に mysqladmin プログラムを利用する事もできます。詳しくは 項7.9. 「mysqladmin — MySQL サーバの管理を行うクライアント」 を参照してください。