13.1.10 CREATE DATABASE 構文

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 SCHEMACREATE 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 サーバーの管理を行うクライアント」を参照してください。


User Comments
  Posted by Chris Wilson on November 23, 2010
You can check the collation and other options of an existing database using the "SHOW CREATE DATABASE" statement.
Sign Up Login You must be logged in to post a comment.