コマンド道場

$ psql --help

psql コマンドの使い方

psql は、PostgreSQL に付属する対話型の端末です。SQL のほかに、\で始まるメタコマンドを受け付けます。表の一覧は \dt、表の定義は \d 表名、データベースの一覧は \l、切り替えは \c 名前 です。

このページの出力は、すべて実際に流して得たものです(PostgreSQL 16)。ページの下にある端末で、同じコマンドをそのまま試せます。

よく使うメタコマンド

右の列は、MySQL の端末で近いことをする書き方です。同じ動きをするわけではありません。

メタコマンドすることMySQL で近い書き方
\lデータベースの一覧SHOW DATABASES
\c 名前別のデータベースへつなぎ直すUSE 名前
\dt表の一覧SHOW TABLES
\d 表名表の定義(列・型・索引・制約)DESCRIBE 表名
\duロール(ユーザー)の一覧—
\dnスキーマの一覧—
\df関数の一覧—
\x結果を縦に並べる表示に切り替え\G(文の終わりに付ける)
\timing実行にかかった時間を表示—
\i ファイルファイルに書いた SQL を実行source ファイル
\conninfoいまの接続先を表示—
\?メタコマンドの一覧(ヘルプ)help
\qpsql を終えるquit(\q)

実際の出力

商品(shohin)と注文(chumon)の 2 つの表を作ったデータベース shop で打っています。

$ psql -d shop -c "\dt"
         List of relations
 Schema |  Name  | Type  |  Owner
--------+--------+-------+----------
 public | chumon | table | postgres
 public | shohin | table | postgres
(2 rows)
表の一覧です。スキーマ(public)・名前・種類・持ち主が出ます。
$ psql -d shop -c "\d chumon"
                Table "public.chumon"
  Column   |  Type   | Collation | Nullable | Default
-----------+---------+-----------+----------+---------
 id        | integer |           | not null |
 shohin_id | integer |           |          |
 qty       | integer |           |          |
Indexes:
    "chumon_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
    "chumon_shohin_id_fkey" FOREIGN KEY (shohin_id) REFERENCES shohin(id)
列と型のほかに、主キーの索引と外部キーまで出ます。表を作った本人も、制約の名前(chumon_pkey など)はここで初めて知ることが多いはずです。
$ psql -d shop -x -c "SELECT * FROM chumon WHERE id = 1"
-[ RECORD 1 ]
id        | 1
shohin_id | 1
qty       | 2
-x(端末の中では \x)で、1 行を縦に並べて表示します。列が多くて横に収まらないときに使います。
$ psql -d shop -c "\timing on" -c "SELECT count(*) FROM chumon"
Timing is on.
 count
-------
     3
(1 row)

Time: 145.400 ms
以降の文ごとに、かかった時間が出ます。時間は環境と回によって変わります(ここはブラウザ内のエミュレータで取ったので、実機よりかなり遅い値です)。

⚠️ つまずきやすいところ

MySQL の SHOW TABLES は通らない

$ psql -d shop -c "SHOW TABLES"
ERROR:  unrecognized configuration parameter "tables"
PostgreSQL の SHOW は設定値を見る命令なので、「tables という設定は無い」と言われます。表の一覧は \dt です。

メタコマンドは psql の中でしか使えない

\で始まる命令は、サーバーではなく psql 自身が処理します。そのため、アプリのプログラムや別のツールから送っても通りません。同じ情報が要るときは、システムカタログ(pg_catalog)や information_schema を SQL で引きます。

画面が固まったように見えたら q

psql は出力が長いとページャを開いて入力を待ちます。抜けるには q を押します。最初から使わないなら -P pager=off を付けます。

よく使う起動オプション

-d 名前つなぐデータベース
-U 名前つなぐユーザー
-h ホスト / -p ポート別のサーバーへつなぐ
-c "命令"1 つ実行して終わる。何個でも並べられ、同じ接続で順に実行される
-f ファイルファイルの SQL を実行して終わる
-lデータベースの一覧を出して終わる
-x結果を縦に並べる(\x と同じ)
-P pager=offページャを使わない(長い出力で固まらない)

その場で試す

ブラウザの中で本物の Linux と PostgreSQL が起動します。下の手順を押すと入力欄にコマンドが入るので、中身を読んでから Enter で実行してください。

押すと、ブラウザの中で Linux が起動します

最初に 約 8.7 MB を読み込みます(起動済みの状態の記録)。そのあと、触ったファイルだけを必要に応じて取りに行きます。通信量にご注意ください。

ここで動くソフトウェアの一部は GPL / LGPL です。対応するソースはこちらから取得できます。

起動・設定の変更・バックアップと復元まで試すならブラウザの中の Linuxのページへ。OSS-DB Silver の「標準付属ツールの使い方」に当たる内容です(出題範囲)。

出典

確認日 2026-10-01。下の端末(ブラウザ内 Linux・PostgreSQL 16.15)で実行した出力です。