psqlメタコマンドの一覧と実行方法

psql を使って PostegreSQL に接続したあとで実行することができる psqql メタコマンドの使い方とコマンドの一覧について解説します。

(Last modified: )

psqlコマンドの実行方法

psql では PostgreSQL に接続したあとに実行することができるコマンドが数多く用意されています。コマンドの一覧を確認するには次のように実行してください。

\?

psql コマンドの一覧と使い方が表示されました。(コマンドの一覧はこのページの最後に掲載しています)。

psqlコマンドの実行方法(1)

psql コマンドは Windows の場合は 円マーク(\)から始まるもので( Windows 以外だとバックスラッシュ )、例えば psql を終了して PostgreSQL との接続を切断する時に使用する \q も psql コマンドの一つです。

\q

psqlコマンドの実行方法(2)

psql コマンドを使うことで作成されているデータベースの一覧を取得することができます。

\l

psqlコマンドの実行方法(3)

また現在接続しているデータベースとは別のデータベースに接続することができます。

\c mydb

psqlコマンドの実行方法(4)

このあとのコマンド一覧を一度ご覧頂いてどんなことができるのか簡単に見ておくと psql をより便利に利用できるのではと思います。

psqlコマンドの一覧

psql コマンドの一覧は次の通りです。

一般:

コマンド説明
\copyrightPostgreSQL の使い方と配布条件を表示します。
\crosstabview [列数]問い合わせを実行し、結果をクロスタブに表示します。
\errverbose最後に発生したエラーメッセージを冗長性最大で表示します。
\g [ファイル] または ;問い合わせを実行(し、結果をファイルまたは |パイプ へ出力)します。
\gdesc問い合わせを実行せずに結果の説明を行います
\gexec問い合わせを実行し、結果の中の個々の値を実行します。
\gset [PREFIX]問い合わせを実行して結果を psql 変数に格納します。
\gx [ファイル名]\g と同じですが、拡張出力モードで実行します。
\qpsql を終了します。
\watch [秒数]指定した秒数ごとに問い合わせを実行します。

ヘルプ:

コマンド説明
\? [コマンド]バックスラッシュコマンドのヘルプを表示します。
\? オプション psql のコマンドライン・オプションのヘルプを表示します。
\? 変数名特殊変数のヘルプを表示します。
\h [名前]SQL コマンドの文法ヘルプの表示。* で全コマンドを表示します。

問い合わせバッファ:

コマンド説明
\e [ファイル] [行番号]現在の問い合わせバッファ(やファイル)を外部エディタで編集します。
\ef [関数名 [行番号]]関数定義を外部エディタで編集します。
\ef [ビュー名 [行番号]]ビュー定義を外部エディタで編集します。
\p問い合わせバッファの中身を表示します。
\r問い合わせバッファをリセット(クリア)します。
\w ファイル問い合わせの中身をファイルに保存します。

入出力:

コマンド説明
\copy ...クライアントホストに対し、データストリームを使って SQL コピーを行います。
\echo [文字列]文字列を標準出力に書き出します。
\i ファイルファイルからコマンドを読み込んで実行します。
\ir ファイル\i と同じ。ただし現在のスクリプト位置からの相対パスで指定します。
\o [ファイル]問い合わせ結果をすべてファイルまたは |パイプ へ送ります。
\qecho [文字列]文字列を問い合わせ出力ストリームに出力(\o を参照)します。

条件分岐:

コマンド説明
\if EXPR条件ブロックの開始
\elif EXPR現在の条件ブロック内の代替条件
\else現在の条件ブロックにおける最後の選択肢
\endif条件ブロックの終了

情報表示:(オプション:S = システムオブジェクトの表示, + = 詳細表示)

コマンド説明
\d[S+]テーブル、ビュー、シーケンスの一覧を表示します。
\d[S+] 名前テーブル、ビュー、シーケンス、インデックスの説明を表示します。
\da[S] [パターン]集約関数一覧を表示します。
\dA[+] [パターン]アクセスメソッド一覧を表示します。
\db[+] [パターン]テーブル空間一覧を表示します。
\dc[S+] [パターン]符号化方式一覧を表示します。
\dC[+] [パターン]キャスト一覧を表示します。
\dd[S] [パターン]他では表示されないオブジェクトの説明を表示します。
\dD[S+] [パターン]ドメイン一覧を表示します。
\ddp [パターン]デフォルト権限一覧を表示します。
\dE[S+] [パターン]外部テーブル一覧を表示します。
\det[+] [パターン]外部テーブル一覧を表示します。
\des[+] [パターン]外部サーバ一覧を表示します。
\deu[+] [パターン]ユーザマッピング一覧を表示します。
\dew[+] [パターン]外部データラッパ一覧を表示します。
\df[antw][S+] [パターン](集約/通常/プロシージャ/トリガー/ウィンドウ)関数(のみ)の一覧 を表示します
\dF[+] [パターン]テキスト検索設定一覧を表示します。
\dFd[+] [パターン]テキスト検索用辞書一覧を表示します。
\dFp[+] [パターン]テキスト検索用パーサ一覧を表示します。
\dFt[+] [パターン]テキスト検索用テンプレート一覧を表示します。
\dg[S+] [パターン]ロール一覧を表示します。
\di[S+] [パターン]インデックス一覧を表示します。
\dlラージオブジェクト一覧を表示します。\lo_list と同じです。
\dL[S+] [パターン]手続き言語一覧を表示します。
\dm[S+] [パターン]マテリアライズドビューの一覧を表示します。
\dn[S+] [パターン]スキーマ一覧を表示します。
\do[S] [名前]演算子一覧を表示します。
\dO[S+] [パターン]照合順序一覧を表示します。
\dp [パターン]テーブル、ビュー、シーケンスのアクセス権一覧を表示します。
\drds [パターン1 [パターン2]]データベース毎のロール設定一覧を表示します。
\dRp[+] [パターン]レプリケーションのパブリケーション一覧を表示します。
\dRs[+] [パターン]レプリケーションのサブスクリプション一覧を表示します。
\dc[S+] [パターン]変換シーケンス一覧を表示します。
\ds[S+] [パターン]テーブル一覧を表示します。
\dt[S+] [パターン]データ型一覧を表示します。
\du[S+] [パターン]ロール一覧を表示します。
\dv[S+] [パターン]ビュー一覧を表示します。
\dx[+] [パターン]拡張一覧を表示します。
\dy [パターン]イベントトリガー一覧を表示します。
\l[+] [パターン]データベース一覧を表示します。
\sf[+] 関数名関数定義を表示します。
\sv[+] ビュー名ビュー定義を表示します。
\z [パターン]\dp と同じです。

書式設定:

コマンド説明
\a出力モード(unaligned / aligned)を切り替えます。
\C [文字列]テーブルのタイトル設定。指定がなければ解除します。
\f [文字列]桁揃えなしの問い合わせ出力で使われるフィールド区切り文字を表示-または設定します。
\HHTML の出力モードを切り替えます(現在: オフ)
\pset [名前 [値]]テーブル出力のオプション設定(名前 := {border | columns | expanded | fieldsep | fieldsep_zero | footer | format | linestyle | null | numericlocale | pager | pager_min_lines | recordsep | recordsep_zero | tableattr | title | tuples_only | unicode_border_linestyle | unicode_column_linestyle | unicode_header_linestyle})
\t [on|off]行のみ表示モード(現在: オフ)
\T [文字列]HTML の <table> タグ属性のセット。引数がなければ解除します。
\x [on|off|auto]拡張出力の切り替え(現在: オフ)

接続関連:

コマンド説明
\c[onnect] {[DB名|- ユーザ名|- ホスト名|- ポート番号|-] | 接続文字列}新しいデータベースに接続します(現在: "postgres")
\conninfo現在の接続に関する情報を表示します。
\encoding [エンコーディング]クライアントのエンコーディングを表示または設定します。
\password [ユーザ名]ユーザのパスワードを安全に変更します。

オペレーティングシステム:

コマンド説明
\cd [DIR]カレントディレクトリを変更します。
\setenv 名前 [値]環境変数を設定または解除します。
\timing [on|off]コマンドのタイミングを切り替えます(現在: オフ)
\! [コマンド]シェルでコマンドを実行するか、もしくは対話型シェルを起動します。

変数:

コマンド説明
\prompt [テキスト] 変数名ユーザに対して内部変数のセットを促します。
\set [変数名 [値]]内部変数の値を設定します。引数がない場合は一覧を表示します。
\unset 変数名内部変数を削除します。

ラージ オブジェクト:

コマンド説明
\lo_export LOBOID ファイル名
\lo_import ファイル名 [コメント]
\lo_list
\lo_unlink LOBOIDラージオブジェクトの操作

-- --

psql コマンドの実行方法とコマンドの一覧について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。