S-JIS[2003-07-19]

psqlメモ

PostgreSQLでSQLを実行するツール。ORACLEのSQL*PLUSより便利。

postmasterに対してSQLを投げるツールなので、postmasterが起動していないとダメ。


起動オプション

psql 〔パラメータ〕

パラメータ 説明
-h ホスト TCP/IP経由でpostmasterに接続する場合に必要。ホスト名又はIPアドレス。
-pポート postmaster起動時のポートがデフォルトでない時には指定する。
-U ユーザーID 接続するユーザーIDを指定。省略すると、UNIXのユーザーIDが使われる。

psql -l 〔-h アドレス〕〔-pポート

そのIPアドレス・ポートで接続できるDBの一覧を表示する。(psql内からDBの一覧を見たい時は\lを使う)

psql 〔-d〕 DB名 〔-h アドレス〕〔-pポート〕〔-U ユーザーID〕〔-f ファイル名

DBに接続する。
DB名を省略すると、UNIXのユーザーIDが使われる。(psql内でDBを切り替える時は\cを使う)
「-f」オプションを付けると、そのファイルの中に書かれているSQLが実行される。(psql内からファイルを実行する時は\iを使う)


キー操作

キー 説明
過去に実行したコマンドに1行ずつ遡る。複数行にわたって入力したコマンドも1行ずつ。
あまり昔に実行したやつなら、\sを使って見る方が早いかも。直前なら\pというコマンドも。
↑で行き過ぎたとき、1行分戻る。
Enter コマンドやSQLを実行する。(SQLの場合は、セミコロン「;」で終わってないと実行されない)
Tab 補完する。大抵のコマンド・SQLを途中まで書いてTabを押すと補完される。
テーブル名も小文字で書いていれば補完される。ファイル名すら補完される。これでテーブルの項目名まで補完されれば完璧…。
Ctrl+C 実行中のSQLをキャンセルする。あるいは書きかけのSQLも実行せずに破棄できる。

psqlコマンド

分類 コマンド 説明 備考

\q psqlを終了する。これを知らなきゃ始まらない。というか、終われない(笑)  


\hSQLコマンド SQLの説明を表示する。オプションを省略するとSQLの一覧が表示される。 \?
\? 〔psqlコマンド psqlのコマンドの説明を表示する。オプションを省略するとコマンドの一覧が表示される。 \h



\l DB一覧の表示。DBのエンコードも表示される。 \c
psql -l
\d 〔テーブル名 テーブルの情報(項目名や属性・INDEXや制約等のトリガー名)を表示する。テーブル名を小文字で書いていれば、Tab補完が効く。
テーブル名を省略するとテーブルの一覧が表示される。
テーブル名の他にビュー名やインデックス名等が指定できる。
インデックス名を指定すると、INDEXになっている項目が表示される。
\z
\z 〔テーブル名 テーブル毎の各ユーザーの権限を表示する。テーブル名のTab補完は効かないが、テーブル名の先頭の一部を書くだけで その名前に該当するテーブルが全て表示される。
テーブル名を省略すると全テーブルについて表示される。
表示内容についてはGRANTを参照。
\d
GRANT





\encodingエンコード 表示するエンコードを切り替える。SJIS・EUC_JP等
エンコードを省略すると、現在のエンコードを表示する。
関数
\pset null 〔文字列 「(SELECT文を実行した際に)nullの場合に表示される文字列」を指定する。  
\pset pager 結果が大量になるSELECTを実行した際に、一定数毎に表示を一時停止するかどうかを設定する。
このコマンドを実行する度にonとoffが切り替わる。オプションとしてonとかを指定してもダメ。
 
\x
\pset expanded
項目を横に並べて1行につき1レコードを表示するか、項目を縦に並べて1行につき項目名とデータのペアを1つずつ表示するか、を切り替える。
このコマンドを実行する度にonとoffが切り替わる。オプションとしてonとかを指定してもダメ。
 

\s 今までの実行したコマンドの履歴を表示する。 \p
\p 直前に実行したコマンドを表示する。 \s

\c DB名 DBを切り替える。 \l
psql -d
\cd ディレクトリ名 カレントディレクトリを変更する。 \i
\i ファイル名 ファイルに書かれたSQLを実行する。ファイル名にはTab補完が効く。 \cd
psql -f

PostgreSQLへ戻る / 技術メモへ戻る/ クライアントアプリケーションへ戻る
メールの送信先:ひしだま