.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "CREATE DATABASE" "" "2007-05-04" "SQL - 言語" "SQLコマンド"
.SH NAME
CREATE DATABASE \- 新しいデータベースを作成する

.SH SYNOPSIS
.sp
.nf
CREATE DATABASE \fIname\fR
    [ [ WITH ] [ OWNER [=] \fIdbowner\fR ]
           [ TEMPLATE [=] \fItemplate\fR ]
           [ ENCODING [=] \fIencoding\fR ]
           [ TABLESPACE [=] \fItablespace\fR ]
           [ CONNECTION LIMIT [=] \fIconnlimit\fR ] ]
.sp
.fi
.SH "説明"
.PP
\fBCREATE DATABASE\fRは新しいPostgreSQLデータベースを作成します。
.PP
データベースを作成するには、スーパーユーザ、もしくはCREATEDBという特別な権限を持つユーザである必要があります。
CREATE USER [\fBcreate_user\fR(l)]を参照してください。
.PP
通常、データベースの作成者がその新しいデータベースの所有者になります。
スーパーユーザは、\fBOWNER\fR句を使用することにより、他のユーザを所有者とするデータベースを作成できます。
スーパーユーザは、特別な権限を保持していないユーザを所有者とするデータベースを作成できます。
スーパーユーザではないCREATEDB権限を保持するユーザは、自分自身を所有者とするデータベースのみ作成できます。
.PP
デフォルトでは、新しいデータベースは標準システムデータベースtemplate1を複製することによって作成されます。
他のテンプレートを指定するには、TEMPLATE \fIname\fRと記述します。
特に、TEMPLATE template0と記述することで、そのバージョンの\fBPostgreSQL\fRによって定義済みの標準オブジェクトのみを持つ、新しいデータベースを作ることができます。
これは、template1に独自にインストールして追加したオブジェクトをコピーしたくない場合に便利です。
.SH "パラメータ"
.TP
\fB\fIname\fB\fR
作成するデータベースの名前です。
.TP
\fB\fIdbowner\fB\fR
新しいデータベースを所有するデータベースユーザの名前です。
デフォルト設定（つまり、コマンドを実行したユーザ）を使用する場合はDEFAULTと指定します。
.TP
\fB\fItemplate\fB\fR
新しいデータベースを作成元となるテンプレートの名前です。
デフォルトテンプレート（template1）を使う場合は、DEFAULTと指定します。
.TP
\fB\fIencoding\fB\fR
新しいデータベースで使われる文字セット符号化方式です。
文字列定数（例えば'SQL_ASCII'）、整数の符号化方式番号、デフォルトの符号化方式（すなわちテンプレートデータベースの符号化方式）を使うDEFAULTのいずれかを指定します。
PostgreSQLサーバでサポートされる文字セットについてはin the documentationで説明します。
.TP
\fB\fItablespace\fB\fR
新しいデータベースに関連付けされるデフォルトのテーブル空間名です。テンプレートデータベースのテーブル空間を使用する場合は、DEFAULTと指定します。
このテーブル空間が、このデータベースで作成されるオブジェクトのデフォルトのテーブル空間となります。
詳細はCREATE TABLESPACE [\fBcreate_tablespace\fR(l)]を参照してください。
.TP
\fB\fIconnlimit\fB\fR
このデータベースで確立できる同時接続数です。
-1（デフォルト）は無制限を意味します。
.PP
省略可能なパラメータは、任意の順番で記述できます。上記の順番で記述しなくても構いません。
.PP
.SH "注釈"
.PP
\fBCREATE DATABASE\fRはトランザクションブロックの内側では実行できません。
.PP
ほとんどの場合、``could not initialize database directory''という行が含まれるエラーは、データディレクトリの権限不足、ディスク容量不足などファイルシステムについての問題に関連するものです。
.PP
データベースを削除するにはDROP DATABASE [\fBdrop_database\fR(l)]を使用してください。
.PP
createdb [\fBcreatedb\fR(1)]プログラムは利便性のために提供される、このコマンドのラッパプログラムです。
.PP
template1以外のデータベースの名前をテンプレートに指定してデータベースをコピーすることは可能ですが、これは（まだ）一般的に使用する``\fBCOPY DATABASE\fR''機能として意図されているわけではありません。
主な制限は、コピー中に他のセッションからテンプレートデータベースへの接続ができないことです。
\fBCREATE DATABASE\fRは、開始した時に他の接続があると失敗します。
テンプレートデータベースへの新規接続は\fBCREATE DATABASE\fRが完了するまでロックされます。
詳細はin the documentationを参照してください。
.PP
CONNECTION LIMITは厳密な制限ではありません。
データベース向けの接続``スロット''が1つ残っていた時に同時に2つの新しいセッション開始要求があった場合、両方とも失敗する可能性があります。
また、この制限はスーパーユーザには強制されません。
.SH "例"
.PP
新しいデータベースを作成します。
.sp
.nf
CREATE DATABASE lusiadas;
.sp
.fi
.PP
salesappユーザを所有者、salesspaceをデフォルトのテーブル空間としてsalesデータベースを作成します。
.sp
.nf
CREATE DATABASE sales OWNER salesapp TABLESPACE salesspace;
.sp
.fi
.PP
ISO-8859-1文字セットをサポートするmusicデータベースを作成します。
.sp
.nf
CREATE DATABASE music ENCODING 'LATIN1';
.sp
.fi
.SH "互換性"
.PP
標準SQLには\fBCREATE DATABASE\fR文はありません。 
データベースは、実装で生成が定義されるカタログと同等のものです。
.SH "関連項目"
ALTER DATABASE [\fBalter_database\fR(l)], DROP DATABASE [\fBdrop_database\fR(l)]
