psql使い方

PostgreSQL への接続方法

基本フォーマット

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

ローカルホスト上のPostgreSQLサーバに接続する場合

psql

別サーバのPostgreSQLサーバに接続する場合

psql -h ホスト名

ロール名指定

psql -U ロール名

データベース名指定

psql -d データベース名

ポート番号指定(デフォルトポート番号5432でない場合)

psql -p ポート番号

すべて指定する場合は次のようになります。

psql  -h 192.168.0.1 -p 5432 -U postgres -d postgres

psql接続後のコマンド

データベース一覧の表示

サーバ上の全てのデータベースの名前、所有者、文字セット符号化方式、アクセス権限の一覧が確認できる。

# \l

                                  List of databases
    Name    |   Owner    | Encoding |  Collate   |   Ctype    |   Access privileges
------------+------------+----------+------------+------------+-----------------------
 postgres   | postgres   | UTF8     | en_US.utf8 | en_US.utf8 |
 template0  | postgres   | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
            |            |          |            |            | postgres=CTc/postgres
 template1  | postgres   | UTF8     | en_US.utf8 | en_US.utf8 | postgres=CTc/postgres+
            |            |          |            |            | =c/postgres

データベースのサイズを確認する

# \l+

                                                                     List of databases
    Name    |   Owner    | Encoding |  Collate   |   Ctype    |   Access privileges   |   Size   | Tablespace |                Description
------------+------------+----------+------------+------------+-----------------------+----------+------------+--------------------------------------------
 postgres   | postgres   | UTF8     | en_US.utf8 | en_US.utf8 |                       | 7945 kB  | pg_default | default administrative connection database
 template0  | postgres   | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +| 7801 kB  | pg_default | unmodifiable empty database
            |            |          |            |            | postgres=CTc/postgres |          |            |
 template1  | postgres   | UTF8     | en_US.utf8 | en_US.utf8 | postgres=CTc/postgres+| 7801 kB  | pg_default | default template for new databases
            |            |          |            |            | =c/postgres           |          |            |

データベースロールを確認(“ユーザ”と”グループ”という概念は”ロール”に統合)

# \du

                                    List of roles
 Role name  |                         Attributes                         | Member of
------------+------------------------------------------------------------+-----------
 epg        | Superuser, Create role, Create DB                          | {}
 postgres   | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

psqlで接続中スキーマの確認

# select current_schema;

 current_schema
----------------
 public

テーブル一覧を確認

# \d

                List of relations
 Schema |          Name          |   Type   | Owner
--------+------------------------+----------+-------
 public | encoded                | table    | epg
 public | encoded_id_seq         | sequence | epg
 public | programs               | table    | epg
 public | recorded               | table    | epg
 public | recorded_id_seq        | sequence | epg
 public | recordedhistory        | table    | epg
 public | recordedhistory_id_seq | sequence | epg
 public | rules                  | table    | epg
 public | rules_id_seq           | sequence | epg
 public | services               | table    | epg