.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "CREATE DATABASE" "" "2005-01-19" "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 ] ]
.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サーバでサポートされる文字セットはthe documentationで説明します。
.TP
\fB\fItablespace\fB\fR
新しいデータベースに関連付けされるデフォルトのテーブル空間名、もしくは、テンプレートデータベースのテーブル空間を使用することを示すDEFAULTです。
このテーブル空間が、このデータベースで作成されるオブジェクトのデフォルトのテーブル空間となります。
詳細はCREATE TABLESPACE [\fBcreate_tablespace\fR(l)]を参照してください。
.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''機能として意図されているわけではありません。
テンプレートとして使用するデータベースは読み取り専用として扱うことを推奨します。
詳細はthe documentationを参照してください。
.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文はありません。 
データベースは、実装で生成が定義されるカタログと同等のものです。
