PostgreSQLコマンド

# プロンプトについて
* Postgresログイン後のプロンプトは2種類

## postgres=>
* 標準ユーザ

## postgres=#
* 特権ユーザ

# システム系
## バージョンの確認
```
postgres=#  SELECT version();
                                                    version
---------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2.18 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit
(1 行)
```

## ヘルプの表示
```
postgres=# \?
一般
  \copyright             PostgreSQL の使い方と配布条件を表示
  \g [ファイル] または ';'  問い合わせを実行（し、結果をファイルまたは |パイプ へ書き出す)
  \h [名前]              SQL コマンドの文法ヘルプ、* で全コマンド
  \q                     psql を終了する
--続ける--
```

## PostgreSQLから抜ける
```
postgres=# \q
$
```

# データベース系
## データベース一覧
```
postgres=# \l
                                                         データベース一覧
                   名前                   |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権
------------------------------------------+----------+------------------+-------------+-------------------+-----------------------
 postgres                                 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |
 template0                                | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
                                          |          |                  |             |                   | postgres=CTc/postgres
 template1                                | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
                                          |          |                  |             |                   | postgres=CTc/postgres
 testdb1                                  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |
(4 行)
```

## データベースの切り替え
```
postgres=# \c testdb1
データベース "testdb1" にユーザ"postgres"として接続しました。
testdb1=#
```

## スキーマ一覧
```
testdb1=# \dn
   スキーマ一覧
  名前  |  所有者
--------+----------
 public | postgres
(1 行)
```

# テーブル・ビュー・シーケンス系
## テーブル一覧表示
```
testdb1=# \dt
          リレーションの一覧
 スキーマ | 名前 |    型    |  所有者
----------+------+----------+----------
 public   | hoge | テーブル | postgres
(1 行)
```

## ビュー一覧表示
```
testdb1=# \dv
          リレーションの一覧
 スキーマ |  名前  |   型   |  所有者
----------+--------+--------+----------
 public   | fuga_v | ビュー | postgres
(1 行)
```

## シーケンス一覧表示
```
testdb1=# \ds
            リレーションの一覧
 スキーマ |  名前  |     型     |  所有者
----------+--------+------------+----------
 public   | piyo_s | シーケンス | postgres
(1 行)
```

## テーブル・ビュー・シーケンス一覧表示
```
testdb1=# \d
            リレーションの一覧
 スキーマ |  名前  |     型     |  所有者
----------+--------+------------+----------
 public   | fuga_v | ビュー     | postgres
 public   | hoge   | テーブル   | postgres
 public   | piyo_s | シーケンス | postgres
(3 行)
```

# ユーザ（Role）系
## ユーザ（Role）一覧の表示
```
testdb1=# \du
                                         ロール一覧
 ロール名 |                                 属性                                 | メンバー
----------+----------------------------------------------------------------------+----------
 test_user  |                                                                      | {}
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる, レプリケーション | {}
```

## ユーザ（Role）の切り替え
```
testdb1=# \c - test_user
データベース "testdb1" にユーザ"test_user"として接続しました。
testdb1=>
```