PostgreSQL | psql を使用して PostgreSQL に接続 | psql メタコマンドの一覧と実行方法
psql を使用して PostgreSQL に接続した後に実行できる psql メタコマンドの使い方と、コマンド一覧について説明する。
psql コマンドの実行方法
psql には、PostgreSQL に接続して実行できるコマンドが多数用意されている。コマンド一覧を確認するには、次のように実行する。psql コマンド一覧と使い方が表示される。コマンド一覧はこのページの最後にも掲載している。
\?
postgres=# \?
一般
\copyright PostgreSQL の使用法と著作権情報を表示
\crosstabview [列] クエリを実行し、ピボットテーブル形式でデータを表示
\errverbose 直近のエラーを最大詳細表示で表示
\g [FILE] または ; クエリを実行(結果をファイルまたは |パイプへ送信)
\gdesc クエリを実行せずに結果の列とデータ型を出力
\gexec クエリを実行し、その結果をそれぞれ実行
\gset [PREFIX] クエリ実行後、その結果を psql 変数に保存
\gx [FILE] \g と同じだが、出力を拡張モードに強制
\q psql を終了
\watch [SEC] 指定秒ごとにクエリを実行
ヘルプ
\? [commands] psql バックスラッシュコマンドの説明
\? options psql コマンドラインオプションのヘルプを表示
\? variables psql 環境設定変数の説明を表示
\h [NAME] SQL コマンド構文のヘルプ、すべて表示するには * を入力
Windows の場合、psql コマンドはバックスラッシュ (\) で始まる。たとえば、psql を終了して PostgreSQL との接続を切るときに使用する \q も psql コマンドの 1 つである。
\q
C:\>psql -U postgres
postgres ユーザーのパスワード:
psql (12.2)
ヘルプを表示するには "help" と入力してください。
postgres=# \q
C:\>
psql コマンドを使用して、作成済みデータベースの一覧を取得できる。
\l
postgres=# \l
postgres=# \l
データベース一覧
名前 | 所有者 | エンコーディング | Collate | Ctype | アクセス権限
-----------+----------+------------------+------------------+------------------+-----------------------
devkuma | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 |
postgres | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 |
template0 | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | Korean_Korea.949 | Korean_Korea.949 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 行)
現在接続しているデータベースとは別のデータベースにも接続できる。
\c devkuma
postgres=# \c devkuma
接続情報: データベース="devkuma", ユーザー="postgres".
devkuma=#
psql コマンド一覧
一般:
| コマンド |
説明 |
| \copyright |
PostgreSQL の使用法と著作権情報を表示 |
| \crosstabview [列] |
クエリを実行し、ピボットテーブル形式でデータを表示 |
| \errverbose |
直近のエラーを最大詳細表示で表示 |
| \g [FILE] または ; |
クエリを実行し、結果をファイルまたは | パイプへ送信 |
| \gdesc |
クエリを実行せずに結果の列とデータ型を出力 |
| \gexec |
クエリを実行し、その結果をそれぞれ実行 |
| \gset [PREFIX] |
クエリ実行後、その結果を psql 変数に保存 |
| \gx [FILE] |
\g と同じだが、出力を拡張モードに強制 |
| \q |
psql を終了 |
| \watch [SEC] |
指定秒ごとにクエリを実行 |
ヘルプ:
| コマンド |
説明 |
| ? [commands] |
psql バックスラッシュコマンドの説明 |
| ? options |
psql コマンドラインオプションのヘルプを表示 |
| ? variables |
psql 環境設定変数の説明を表示 |
| \h [NAME] |
SQL コマンド構文のヘルプ、すべて表示するには * を入力 |
クエリバッファ:
| コマンド |
説明 |
| \e [FILE] [LINE] |
外部エディタでクエリバッファまたはファイルを編集 |
| \ef [FUNCNAME [LINE]] |
外部エディタで該当する関数の内容を編集 |
| \ev [VIEWNAME [LINE]] |
外部エディタで該当するビュー定義を編集 |
| \p |
クエリバッファの内容を表示 |
| \r |
クエリバッファを初期化してすべて消去 |
| \w FILE |
クエリバッファをファイルに書き込む |
入力/出力:
| コマンド |
説明 |
| \copy … |
クライアントホスト上のデータを使用して SQL COPY コマンドを実行 |
| \echo [STRING] |
文字列を標準出力に書き込む |
| \i FILE |
ファイルからコマンドを実行 |
| \ir FILE |
\i と同じだが、パスは現在位置からの相対パス |
| \o [FILE] |
すべてのクエリ結果をファイルまたは | パイプへ送信 |
| \qecho [STRING] |
文字列をクエリ出力ストリームに書き込む。\o 参照 |
条件文:
| コマンド |
説明 |
| \if EXPR |
条件文を開始 |
| \elif EXPR |
else if 節を開始 |
| \else |
条件文のその他の条件 |
| \endif |
条件文を終了 |
情報表示:
(オプション: S = システムオブジェクトを表示、+ = 追加の詳細情報)
| コマンド |
説明 |
| \d[S+] |
テーブル、ビュー、シーケンス一覧 |
| \d[S+] NAME |
テーブル、ビュー、シーケンス、インデックスの説明 |
| \da[S] [PATTERN] |
集約関数一覧 |
| \dA[+] [PATTERN] |
アクセスメソッド一覧 |
| \db[+] [PATTERN] |
テーブルスペース一覧 |
| \dc[S+] [PATTERN] |
文字セット変換一覧 |
| \dC[+] [PATTERN] |
型キャスト一覧 |
| \dd[S] [PATTERN] |
他では表示されないオブジェクト説明を表示 |
| \dD[S+] [PATTERN] |
ドメイン一覧 |
| \ddp [PATTERN] |
既定アクセス権限一覧 |
| \dE[S+] [PATTERN] |
外部テーブル一覧 |
| \det[+] [PATTERN] |
外部テーブル一覧 |
| \des[+] [PATTERN] |
外部サーバー一覧 |
| \deu[+] [PATTERN] |
ユーザーマッピング一覧 |
| \dew[+] [PATTERN] |
外部データラッパー一覧 |
| \df[anptw][S+] [PATRN] |
関数一覧 [aggregate/normal/procedure/trigger/window] |
| \dF[+] [PATTERN] |
テキスト検索設定一覧 |
| \dFd[+] [PATTERN] |
テキスト検索辞書一覧 |
| \dFp[+] [PATTERN] |
テキスト検索パーサ一覧 |
| \dFt[+] [PATTERN] |
テキスト検索テンプレート一覧 |
| \dg[S+] [PATTERN] |
ロール一覧 |
| \di[S+] [PATTERN] |
インデックス一覧 |
| \dl |
ラージオブジェクト一覧、\lo_list と同じ |
| \dL[S+] [PATTERN] |
手続き言語一覧 |
| \dm[S+] [PATTERN] |
マテリアライズドビュー一覧 |
| \dn[S+] [PATTERN] |
スキーマ一覧 |
| \do[S] [PATTERN] |
演算子一覧 |
| \dO[S+] [PATTERN] |
照合順序一覧 |
| \dp [PATTERN] |
テーブル、ビュー、シーケンスのアクセス権限一覧 |
| \dP[itn+] [PATTERN] |
パーティションリレーション一覧 [インデックス/テーブルのみ] [n=nested] |
| \drds [PATRN1 [PATRN2]] |
データベース別ロール設定一覧 |
| \dRp[+] [PATTERN] |
レプリケーションパブリケーション一覧 |
| \dRs[+] [PATTERN] |
レプリケーションサブスクリプション一覧 |
| \ds[S+] [PATTERN] |
シーケンス一覧 |
| \dt[S+] [PATTERN] |
テーブル一覧 |
| \dT[S+] [PATTERN] |
データ型一覧 |
| \du[S+] [PATTERN] |
ロール一覧 |
| \dv[S+] [PATTERN] |
ビュー一覧 |
| \dx[+] [PATTERN] |
拡張モジュール一覧 |
| \dy [PATTERN] |
イベントトリガー一覧 |
| \l[+] [PATTERN] |
データベース一覧 |
| \sf[+] 関数名 |
関数定義を表示 |
| \sv[+] ビュー名 |
ビュー定義を表示 |
出力形式:
| コマンド |
説明 |
| \a |
整列しない出力モードと整列した出力モードを切り替える |
| \C [STRING] |
テーブルタイトルを設定、値がない場合は解除 |
| \f [STRING] |
unaligned 出力のフィールド区切り文字を表示または設定 |
| \H |
HTML 出力モードを切り替える(現在 off) |
| \pset [名前 [値]] |
テーブル出力オプションを設定 |
|
border|columns|csv_fieldsep|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] |
行だけを表示(現在 off) |
| \T [STRING] |
HTML <table> タグ属性を設定、空の場合は解除 |
| \x [on|off|auto] |
拡張出力を切り替える(現在 off) |
接続:
| コマンド |
説明 |
| \c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo} |
新しいデータベースに接続(現在 “postgres”) |
| \conninfo |
現在のデータベース接続情報を表示 |
| \encoding [ENCODING] |
クライアントエンコーディングを表示または設定 |
| \password [USERNAME] |
ユーザーのパスワードを安全に変更 |
オペレーティングシステム:
| コマンド |
説明 |
| \cd [DIR] |
現在の作業ディレクトリを変更 |
| \setenv NAME [VALUE] |
環境変数を設定または解除 |
| \timing [on|off] |
コマンド実行時間の表示を切り替える(現在 off) |
| ! [COMMAND] |
シェルコマンドを実行、または対話式シェルを開始 |
変数:
| コマンド |
説明 |
| \prompt [TEXT] NAME |
ユーザーに内部変数の設定を促す |
| \set [NAME [VALUE]] |
内部変数を設定、未指定の場合はすべての変数一覧を表示 |
| \unset NAME |
内部変数の設定を解除して削除 |
ラージオブジェクト:
| コマンド |
説明 |
| \lo_export LOBOID FILE |
ラージオブジェクト操作 |
| \lo_import FILE [COMMENT] |
ラージオブジェクト操作 |
| \lo_list |
ラージオブジェクト操作 |
| \lo_unlink LOBOID |
ラージオブジェクト操作 |