データベースを作成する(CREATE DATABASE)

PostgreSQL では新しいデータベースを作成するために CREATE DATABASE コマンドを使用します。ここでは PostgreSQL でデータベースを新規に作成する方法について解説します。

(Last modified: )

新しいデータベースを作成する

データベースを作成するには CREATE DATABASE コマンドを使用します。書式は次の通りです。

CREATE DATABASE name
    [ [ WITH ] [ OWNER [=] user_name ]
           [ TEMPLATE [=] template ]
           [ ENCODING [=] encoding ]
           [ LC_COLLATE [=] lc_collate ]
           [ LC_CTYPE [=] lc_ctype ]
           [ TABLESPACE [=] tablespace_name ]
           [ ALLOW_CONNECTIONS [=] allowconn ]
           [ CONNECTION LIMIT [=] connlimit ]
           [ IS_TEMPLATE [=] istemplate ] ]

オプションがいくつか用意されていますが、基本となる構文は次の通りです。

CREATE DATABASE name

データベース名( name )を指定して新しいデータベースを作成します。明示的に指定しない場合は、作成済みのテンプレートデータベース template1 をコピーしてデータベースが作成されます。

データベースを作成するにはコマンドを実行するロールがスーパーユーザーか、 CREATEDB 権限を持っている必要があります。

-- --

それでは実際に試してみます。 psql 上で次のように実行してください。

create database mydb;

新しいデータベースを作成する(1)

データベースの作成が完了しました。

それでは作成済みのデータベース一覧を表示してみます。

\l

新しいデータベースを作成する(2)

先ほど作成した mydb データベースが存在していることが確認できました。

文字セットや照合順序を指定してデータベースを作成する

データベースを作成するときにデータベースで使用する文字セット( ENCODING )や照合順序( LC_COLLATE )や文字のクラス( LC_CTYPE )は明示的に指定しなかった場合はデフォルトの値が使用されますが、これらは一度データベースを作成すると変更することができませんのでご注意ください。

もし明示的に文字セットを指定してデータベースを作成する場合は次の書式を使います。

CREATE DATABASE name
  ENCODING encoding
  LC_COLLATE lc_collate
  LC_CTYPE lc_ctype

なおロケール設定( LC_COLLATE と LC_CTYPE )がデフォルトで使用されるテンプレートの template1 のロケール設定と異なる場合、明示的にテンプレートとして template0 を使用する必要があります。

CREATE DATABASE name
  TEMPLATE template0
  ENCODING encoding
  LC_COLLATE lc_collate
  LC_CTYPE lc_ctype

-- --

それでは実際に試してみます。今回は文字セットとして EUC_JP1 、照合順序と文字のクラスとして 'Japanese_Japan.20932' を設定してデータベースを作成します。

create database mydb2
  template template0 
  encoding EUC_JP 
  lc_collate 'Japanese_Japan.20932' 
  lc_ctype 'Japanese_Japan.20932';

文字セットや照合順序を指定してデータベースを作成する(1)

文字セット、照合順序、そして文字クラスを指定して新しいデータベースを作成しました。

それでは作成済みのデータベース一覧を表示してみます。

\l

文字セットや照合順序を指定してデータベースを作成する(2)

先ほど作成した mydb2 データベースが存在し、文字セットや照合順序が指定したものになっていることが確認できました。

-- --

CREATE DATABASE コマンドを使ってデータベースを作成する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。