1. 開始・終了
  2. コマンド

PostgreSQLのpsqlコマンドについて

ドキュメント・psql

開始・終了

psqlコマンドをつかってローカルのPostgreSQLに接続する場合、以下のようになります。

psql -U [ユーザー名] -d [接続するデータベース名]

接続先PostgreSQLサーバーが別サーバーの場合、オプション"-h"または"--host="で指定します。

psql -U [ユーザー名] -h [サーバーP] -d [接続するデータベース名]

PostgreSQLサーバーが192.168.1.10、接続ユーザーがaduser、接続先データベースがtestdbの場合

$ psql -U aduser -h 192.168.1.10 -d testdb

  • 終了

  • psqlの終了コマンドは、"\q"になります。"\q"を入力してEnterキーを押せば終了します。

    postgres=# \q

コマンド

psqlは、SQLの実行以外に固有のコマンドを実行することができます。

  • ヘルプ

  • psqlコマンドのヘルプは、"\?"になります。 実行すると以下のようなコマンド一覧が表示されます。

    postgres=# \?
    一般
      \copyright             PostgreSQL の使い方と配布条件を表示
      \g [ファイル] または ';'  問い合わせを実行(し、結果をファイルまたは |パイプ へ書き出す)
    \gset [PREFIX]         問い合わせを実行し結果をpsql変数に格納
      \q                     psql を終了する
      \watch [SEC]           SEC秒毎に問い合わせを実行する
    
    Help
      \? [commands]          show help on backslash commands
      \? options             show help on psql command-line options
      \? variables           show help on special variables
      \h [名前]              SQL コマンドの文法ヘルプ、* で全コマンド
      
      ...
      ...
      
    ラージオブジェクト
      \lo_export LOBOID ファイル名
      \lo_import ファイル名 [コメント]
      \lo_list
      \lo_unlink LOBOID     ラージオブジェクトの操作

  • データベース一覧表示

  • データベースの一覧を表示するコマンドは、"\l"(Lの小文字)になります。

    postgres=# \l
                                             データベース一覧
       名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権       
    -----------+----------+------------------+-------------+-------------------+-----------------------
     ksdb_dev | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
     postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
     template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
               |          |                  |             |                   | postgres=CTc/postgres
     template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
               |          |                  |             |                   | postgres=CTc/postgres
     testdb    | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
    (5 行)

  • テーブル一覧表示

  • 現在接続しているデータベースのテーブル一覧を表示するコマンドは、"\d"になります。 データベースtestdbに、3個のテーブルcomments, prefectures, usersがある場合、以下のような表示になります。

    testdb=# \d
                     リレーションの一覧
     スキーマ |      名前       |     型     |  所有者  
    ----------+-----------------+------------+----------
     public   | comments        | テーブル   | postgres
     public   | comments_id_seq | シーケンス | postgres
     public   | prefectures     | テーブル   | postgres
     public   | users           | テーブル   | testdb
     public   | users_id_seq    | シーケンス | testdb
    (5 行)

    データベースを指定せずに接続した場合、"リレーションがありません。"とだけ表示されます。

    $ psql -U postgres
    ユーザ postgres のパスワード: 
    psql (9.5.7)
    "help" でヘルプを表示します.
    
    postgres=# \d
    リレーションがありません。

  • 表示方法の縦・横の切り替え(拡張出力)

  • "\x"で拡張出力をオンにできます。 拡張出力がオンになると、以下のように表示項目が縦に表示されるようになります。 psqlで接続した直後、拡張出力はデフォルトのオフになっています。

    postgres=# \d
    リレーションの一覧
    -[ RECORD 1 ]-------------
    スキーマ | public
    名前     | comments
    型       | テーブル
    所有者   | postgres
    -[ RECORD 2 ]-------------
    スキーマ | public
    名前     | comments_id_seq
    型       | シーケンス
    所有者   | postgres
    -[ RECORD 3 ]-------------
    スキーマ | public
    名前     | prefectures
    型       | テーブル
    所有者   | postgres
    -[ RECORD 4 ]-------------
    スキーマ | public
    名前     | users
    型       | テーブル
    所有者   | testdb
    -[ RECORD 5 ]-------------
    スキーマ | public
    名前     | users_id_seq
    型       | シーケンス
    所有者   | testdb
    
    元のオフにする場合は、"\x"を再度実行します。