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 |