S-JIS[2003-07-19]
PostgreSQLでSQLを実行するツール。ORACLEのSQL*PLUSより便利。
postmasterに対してSQLを投げるツールなので、postmasterが起動していないとダメ。
パラメータ | 説明 |
---|---|
-h ホスト | TCP/IP経由でpostmasterに接続する場合に必要。ホスト名又はIPアドレス。 |
-pポート | postmaster起動時のポートがデフォルトでない時には指定する。 |
-U ユーザーID | 接続するユーザーIDを指定。省略すると、UNIXのユーザーIDが使われる。 |
そのIPアドレス・ポートで接続できるDBの一覧を表示する。(psql内からDBの一覧を見たい時は\lを使う)
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も実行せずに破棄できる。 |
分類 | コマンド | 説明 | 備考 |
---|---|---|---|
終 了 |
\q | psqlを終了する。これを知らなきゃ始まらない。というか、終われない(笑) | |
ヘ ル プ |
\h 〔SQLコマンド〕 | 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 |