【PostgreSQL】コマンド(psql)でデータベースを作成する方法

DB

psqlコマンドはコマンドラインからPostgreSQLのデータベースにアクセスしたり、テーブル操作ができるツールです。

今回はこのpsqlを使ってデータベースを新規作成する方法を紹介します。

前提

psqlコマンドを利用するためには、PostgreSQLのパスを環境変数に通しておく必要があります。

PostgreSQLのbinフォルダを環境変数に設定しておいてください。

psqlの起動

Windowsからpsqlを利用するには、コマンドプロンプトを起動します。最初の接続は以下のコマンドを実行します。

psql -h ホスト名 -p ポート番号 -U ロール名 -d データベース名

ホスト名にはPostgreSQLが起動しているホスト名またはIPアドレスを指定します。localhostの場合は省略可能です。ポート番号もデフォルト値がPostgreSQLの5432となっているので、別ポートを使用している場合以外は省略可能です。

ロール名にはログインするロール名を指定します。PostgreSQLをインストールした直後はスーパユーザであるpostgresロールしか存在しないので、-U postgresと指定する必要があります。指定しない場合はOSのユーザが指定されます。

データベース名には接続するデータベース名を指定します。ロールをpostgresとした場合は、デフォルトで作成されているpostgresデータベースに接続します。

最初のデータベースを作成する場合、ロール名以外は省略できるので以下のコマンドを実行します。

psql -U postgres
psql -U postgres

実行すると、パスワードを求められます。ユーザに対応するパスワードを入力してください。

ちなみに、postgresユーザのパスワードはPostgreSQLインストール時に指定したパスワードです。

データベース一覧の確認

psqlでデータベースの一覧を取得するには、\lコマンドを実行します。

\l

データベースの作成

では新しいデータベースを作成してみます。create databaseコマンドを使って作成できます。”test”というデータベースを作成します。

create database test;

一覧を確認すると、

データベース一覧

testというデータベースが作成されました。このとき、エンコーディング等パラメータはtemplate1のものが利用されます。create databaseのなかで、これらパラメータを個別に指定することも可能です。

create database DB名
    [    [ 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 ] ]

これらは任意指定ですが、一度データベースを作成してしまうと変更できなくなるので注意してください。

DBについてより学ぶ

データベース、SQLについて、書籍を通してより深く知ることができます。ネットでも情報は手に入りますが、書籍も是非検討してみてください^^

まとめ

psqlでデータベースを作成する方法を紹介しました。コマンドを使用することで、簡単にデータベースを作成することができます。データベースのパラメータは一度作成すると変更できないので、注意してくださいね。

ではでは👋