goo blog サービス終了のお知らせ 

職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

「psql」コマンドのまとめ

2017年07月06日 | PostgreSQL
「psql」コマンドのまとめ


【環境条件】
win10
psql (PostgreSQL) 9.5.7

■psqlコマンドについて
PostgreSQLに付属されているツールで、データベースの管理をしたり、SQL文を実行したりすることが出来るPostgreSQL の会話型ターミナル

1)確認の仕方
C:\Users\hiromi>psql --help


使用方法:
psql [オプション]... [データベース名 [ユーザ名]]

一般的なオプション:
-c, --command=コマンド (SQLまたは内部の)単一コマンドを一つだけ実行して終了
-d, --dbname=DB名 接続するデータベース名を指定(デフォルト: "")
-f, --file=ファイル名 ファイルからコマンドを読み込んで実行後、終了
-l(エル), --list 使用可能なデータベース一覧を表示して終了
-v, --set=, --variable=NAME=VALUE
set psql variable NAME to VALUE
(e.g., -v ON_ERROR_STOP=1)
-V, --version バージョン情報を表示し、終了します
-X, --no-psqlrc 初期化ファイル (~/.psqlrc) を読みこまない
-1(数字の1), --single-transaction
単一のトランザクションとして実行(対話式でない場合)
-?, --help[=options] show this help, then exit
--help=commands list backslash commands, then exit
--help=variables list special variables, then exit

入出力オプション:
-a, --echo-all スクリプトからのすべての入力を表示
-b, --echo-errors echo failed commands
-e, --echo-queries サーバーへ送信したコマンドを表示
-E, --echo-hidden 内部コマンドが生成した問い合わせを表示
-L, --log-file=ファイル名 セッションログをファイルに書き込む
-n, --no-readline 拡張コマンドライン編集機能(readline)を無効にする
-o, --output=ファイル名 問い合わせ結果をファイル(または |パイプ)に送る
-q, --quiet 静かに実行(メッセージなしで、問い合わせの出力のみ)
-s, --single-step シングルステップモード(各問い合わせごとに確認)
-S, --single-line 単一行モード(行末を SQL コマンドの終了とみなす)

出力フォーマットオプション:
-A, --no-align 桁揃えなしのテーブル出力モード
-F, --field-separator=文字列
桁揃えなしの出力でのフィールド区切り文字(デフォルト: "|")
-H, --html HTML テーブル出力モード
-P, --pset=変数[=値] 表示オプション '変数' を '値' にセット (\pset コマンドを参照)
-R, --record-separator=文字列
桁揃えなしの出力でのレコード区切り文字(デフォルト:改行)
-t, --tuples-only 行のみを表示
-T, --table-attr=TEXT HTMLテーブルのタグ属性をセット(width, border等)
-x, --expanded 拡張テーブル出力を有効にする
-z, --field-separator-zero
桁揃えなしの出力でのフィールド区切り文字をゼロバイトに設定
-0, --record-separator-zero
桁揃えなしの出力でのレコード区切り文字をゼロバイトに設定

接続オプション:
-h, --host=ホスト名 データベースサーバーのホストまたはソケットのディレクトリ(デフォルト: "ローカルソケット")
-p, --port=ポート番号 データベースサーバーのポート番号(デフォルト: "")
-U, --username=ユーザー名 データベースのユーザ名(デフォルト: "")
-w, --no-password パスワード入力を要求しない
-W, --password パスワードプロンプトを強制表示する
(本来は自動的に表示されるはずです)

詳細は psql の中で "\?" (内部コマンドの場合) または "\help"
(SQL コマンドの場合) をタイプするか、PostgreSQL ドキュメントの psql の
セクションを参照のこと。
不具合はまで報告してください。

例文
C:\Users\hiromi>psql -V
psql (PostgreSQL) 9.5.7

1)PostgreSQLへ接続
C:\Users\hiromi>psql -U postgres
ユーザ postgres のパスワード:
成功すると下記のように成る
postgres=#

2)データーベース一覧表示
postgres=# ¥l
データベース一覧
名前 | 所有者 | エンコーディング |
-----------+----------+------------------+--------------------+---
postgres | postgres | UTF8
sample1 | postgres | UTF8 |
sample2 | testuser | UTF8 |
template0 | postgres | UTF8 |
template1 | postgres | UTF8 |
(5 行)

3)データーベース「sample1」の作成
postgres=# create database sample;←SQL文
CREATE DATABASE

4)データーベース「sample1」の削除
postgres=# drop database sample;←SQL文
DROP DATABASE

5)データーベース「sample1」と接続
postgres=# ¥c sample1
データベース "sample1" にユーザ"postgres"として接続しました。
sample1=#←接続したデーターベース名に変わる

6)テーブルの一覧
sample1=# ¥d
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------+---------+----------+----------
public | sample | テーブル | postgres
public | sample1 | テーブル | postgres
public | sample2 | テーブル | postgres
public | sample3 | テーブル | postgres
public | sample4 | テーブル | postgres
public | test | テーブル | postgres

7)テーブル「test2」の作成
sample1=# create table test2(id integer,name text);←SQL文
CREATE TABLE

8)データ入力
sample1=# insert into test2(id,name) values(1,'yamada');
INSERT 0 1
sample1=# insert into test2(id,name) values(2,'sato');
INSERT 0 1

9)データ表示
sample1=# select * from test2;
id | name
----+--------
1 | yamada
2 | sato
(2 行)

10)データ削除(whereが無いとまるごと消える)
sample1=# delete from test2 where id=2;
DELETE 1
sample1=# select * from test2;
id | name
----+--------
1 | yamada


11)テーブル削除
sample1=# drop table test2;
DROP TABLE
sample1=# ¥d
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------+---------+----------+----------
public | sample | テーブル | postgres
public | sample1 | テーブル | postgres
public | sample2 | テーブル | postgres
public | sample3 | テーブル | postgres
public | sample4 | テーブル | postgres
public | test | テーブル | postgres
(6 行)
後はグーグルで調べてね!

■終了
postgres=# ¥q
C:\Users\hiromi>

【クエリ(SQL文)の発行】
C:\Users\hiromi>psql -U postgres
ユーザ postgres のパスワード:
psql (9.5.7)
"help" でヘルプを表示します.

postgres=# ¥?
・クエリの一覧
一般
\copyright PostgreSQL の使い方と配布条件を表示
\g [ファイル] または ';' 問い合わせを実行(し、結果をファイルまたは |パイプ へ書き出す)
\gset [PREFIX] 問い合わせを実行し結果をpsql変数に格納
\q psql を終了する
\watch [SEC] SEC秒毎に問い合わせを実行する

Help
\? [commands] show help on backslash commands
\? options show help on psql command-line options
\? variables show help on special variables
\h [名前] SQL コマンドの文法ヘルプ、* で全コマンド

問い合わせバッファ
\e [ファイル] [行番号] 現在の問い合わせバッファ(やファイル)を外部エディタで編集する
\ef [関数名 [行番号]] 関数定義を外部エディタで編集する
\p 問い合わせバッファの内容を表示する
\r 問い合わせバッファをリセット(クリア)する
\w ファイル 問い合わせバッファの内容をファイルに書き出す

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

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

書式設定
\a 出力モードの 'unaligned' / 'aligned' を切り替える
\C タイトル テーブルのタイトルを設定する。指定がなければ解除
\f [文字列] 桁揃えを行わない(unaligned)問い合わせ出力におけるフィールド区切り文字を表示または設定
\H HTML の出力モードを切り替える(現在: オフ)
\pset [NAME [VALUE]] set table output option
(NAME := {format|border|expanded|fieldsep|fieldsep_zero|footer|null|
numericlocale|recordsep|recordsep_zero|tuples_only|title|tableattr|pager|
unicode_border_linestyle|unicode_column_linestyle|unicode_header_linestyle})
\t [on|off] 行のみを表示するか? (現在: オフ)
\T [文字列] HTML の タグの属性をセット。引数がなければ解除
\x [on|off|auto] 拡張出力の切り替え(現在: オフ)

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

オペレーティングシステム
\cd [DIR] カレントディレクトリを変更
\setenv NAME [VALUE] 環境変数の設定、設定解除を行う
\timing [on|off] コマンドのタイミングを切り替える(現在: オフ)
\! [コマンド] シェルでコマンドを実行、もしくは会話型シェルを起動

変数
\prompt [テキスト] 変数名 ユーザに内部変数をセットするよう促す
\set [変数名 [値]]
内部変数の値をセット。引数がない場合は一覧表示。
\unset 変数名 内部変数を削除する

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

postgres=#
以上

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« PostgreSQLのダウンロード及... | トップ | PostgreSQLのデーターベース... »
最新の画像もっと見る

コメントを投稿

PostgreSQL」カテゴリの最新記事

【11/18】goo blogサービス終了のお知らせ
【PR】プロ直伝・dポイントをザクザクためる術
【PR】安い&大量の「訳あり商品」がヤバい!
【コメント募集中】お気に入りの「道の駅」ありますか?

プロフィール

プロフィール画像
自己紹介
現在、一部経(法華経・無量義経・観普賢経)を和訳しHPを掲載している。その他、マークアップ言語、C#、C++、C言語、java、Pythonや、介護について書いている。
  • RSS2.0