PostgreSQL | データベース | データベースの作成(CREATE DATABASE)
CREATE DATABASE コマンドを使用して PostgreSQL のデータベースを新しく作成する方法について説明する。
新しいデータベースを作成する
データベースを作成するには 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 で次のように実行する。
C:\Users\kimkc>psql -U postgres
postgres 사용자의 암호:
psql (12.2)
도움말을 보려면 "help"를 입력하십시오.
postgres=# create database devkuma;
CREATE DATABASE
postgres=#
データベースが作成された。
次に、作成されたデータベースを確認してみる。
postgres=# \l
데이터베이스 목록
이름 | 소유주 | 인코딩 | Collate | Ctype | 액세스 권한
-----------+----------+--------+------------------+------------------+-----------------------
devkuma | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 | <<<< 新規作成
postgres | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 |
sample | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 |
template0 | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 | =c/postgres +
| | | | | postgres=CTc/postgres
(5개 행)
postgres=#
文字セットと照合順序を指定してデータベースを作成する
データベースを作成するとき、データベースで使用する文字セット (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
–
それでは実際に試してみる。今回は文字セットに UTF8、文字列の照合順序と文字分類に Korean_Korea.949 を設定してデータベースを作成する。
postgres=# create database devkuma2
postgres-# template template0
postgres-# encoding UTF8
postgres-# lc_collate 'Korean_Korea.949'
postgres-# lc_ctype 'Korean_Korea.949';
CREATE DATABASE
postgres=#
文字セット、文字列の照合順序、文字分類を指定して新しいデータベースを作成した。
次に、作成されたデータベースを一覧表示してみる。
postgres=# \l
데이터베이스 목록
이름 | 소유주 | 인코딩 | Collate | Ctype | 액세스 권한
-----------+----------+--------+------------------+------------------+-----------------------
devkuma | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 |
devkuma2 | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 | <<< 新規作成
postgres | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 |
sample | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 |
template0 | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 | =c/postgres +
| | | | | postgres=CTc/postgres
(6개 행)
postgres=#
作成した devkuma2 データベースが存在し、文字セット、文字列の照合順序、文字分類が指定されていることを確認できる。
–
ここまで、CREATE DATABASE コマンドを使用してデータベースを作成する方法について説明した。