CREATE {DATABASE | SCHEMA} [IF NOT EXISTS]db_name
[create_specification
[create_specification
] ...]create_specification
: [DEFAULT] CHARACTER SETcharset_name
| [DEFAULT] COLLATEcollation_name
CREATE DATABASE
は、与えられた名前でデータベースを作成します。このステートメントを利用する為には、データベースに CREATE
権限が必要です。CREATE SCHEMA
は CREATE 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 サーバの管理を行うクライアント」 を参照してください。