13.1.11 CREATE DATABASE Statement
CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name}
CREATE DATABASE
は与えられた名前を持つデータベースを作成します。 このステートメントを使用するには、そのデータベースに対してCREATE
権限が必要です。 CREATE SCHEMA
は CREATE DATABASE
の同義語である。
データベースが存在し、IF NOT EXISTS
を指定しなかった場合、エラーが発生します。
CREATE DATABASE
は、アクティブな LOCK TABLES
文を持つセッション内では許可されません。
各create_option
はデータベースの特性を指定します。 データベース特性はデータベースディレクトリの db.opt
ファイルに格納される。 CHARACTER SET
オプションはデータベースのデフォルトの文字セットを指定する。 COLLATE
オプションはデータベースのデフォルトの照合順序を指定する。 キャラクタセットと照合順序の名前については、第10章「キャラクタセット、照合順序、Unicode」を参照のこと。
利用可能なキャラクタセットと照合順序を見るには、それぞれSHOW CHARACTER SET
とSHOW COLLATION
ステートメントを使用します。 13.7.5.3項 「SHOW CHARACTER SETステートメント」、および13.7.5.4項 「SHOW COLLATIONステートメント」を参照してください。
MySQL のデータベースは、データベース内のテーブルに対応するファイルを含むディレクトリとして実装されています。 初期作成時にはデータベース内にテーブルは存在しないため、CREATE DATABASE
ステートメントは MySQL データディレクトリの下にディレクトリと db.opt
ファイルのみを作成します。 許容されるデータベース名のルールは 「スキーマオブジェクト名」 に記載されています。 データベース名に特殊文字が含まれている場合、「識別子とファイル名のマッピング」で説明されているように、データベースディレクトリの名前にはそれらの文字がエンコードされたバージョンが含まれます。
データディレクトリの下に手動でディレクトリを作成した場合 (たとえば mkdir を使用して)、サーバーはそれをデータベースディレクトリとみなし、SHOW DATABASES
の出力に表示されます。
データベースを作成するときは、ディレクトリとその中のファイルをサーバーに管理させてください。 データベースのディレクトリやファイルを直接操作すると、不整合や予期せぬ結果を引き起こす可能性があります。
MySQL にはデータベースの数に制限はありません。 基礎となるファイルシステムには、ディレクトリの数に制限がある場合があります。
mysqladmin プログラムを使用して、データベースを作成することもできます。 mysqladmin – A MySQL Server Administration Program」(Mysqladmin – A MySQL Server Administration Program) を参照してください。