データベース - postgreSQL - psql・一覧表示等

クラウディア 
1. 概要
2. 起動・終了
3. ユーザ一覧表示
4. ロール一覧表示
5. データベース一覧表示
6. テーブル一覧表示
7. テキストファイルの実行

1. 概要

 「postgreSQL」には、「psql」というクライアント用のコマンドが用意されています。  「Oracle」でいう「SQL*Plus」、「IBM DB2」でいう「clpplus」に相当するものです。  本ページは、下記のサイトを参考にさせていただきました。
SQL ファイルの読み込みと実行 | PostgreSQL」
「PostgreSQL | 作成済みのロール一覧を表示する

2. 起動・終了


psql -d データベース名
 で起動します。  データベース名を指定しない場合、環境変数「PGDATABASE」が設定されていれば、その名称をデフォルトのデータベースとして。  設定されていなければ、コマンドを起動したユーザ名をデフォルトのデータベースとして起動します。  ユーザ名を指定する場合、例えば、「postgres」ユーザで接続するには。

psql -U postgres
 デフォルトでは、ポート番号「5432」で接続しています。  「PostgreSQL」側で、接続に使用しているポート番号が異なる場合は。

psql --port ポート番号
 起動後に終了するには「\q」もしくは、Ctrl+D を入力します。

$ psql -d dbname
psql (9.4.15)
"help" でヘルプを表示します.

dbname=# \q
$

3. ユーザ一覧表示

 ユーザの一覧を表示するには、「postgres」ユーザになって「psql」から「SQL」を入力します。  ログインユーザ権限で。

sudo su postgres -c "psql"

psql (10.1)
Type "help" for help.

postgres=# select * from pg_shadow;
 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig
----------+----------+-------------+----------+---------+--------------+--------+----------+----------
 postgres |       10 | t           | t        | t       | t            |        |          |

	・・・

 mantis   |    16387 | t           | t        | f       | f            |        |          |
 nobody   |    16388 | f           | f        | f       | f            |        |          |
 pgsql    |    16389 | t           | t        | t       | f            |        |          |
 www      |    16390 | f           | f        | f       | f            |        |          |
(7 rows)

postgres=#
 わかりやすいように「SQL」の部分のみ抜き書きしておきます。

select * from pg_shadow;

4. ロール一覧表示

 よく理解していないので、ユーザとロールとスキーマの区別がようついておらんのですが・・・。  ロールの一覧を表示するには、「\du」

postgres=# \du
                                       ロール一覧
 ロール名 |                                     属性
----------+------------------------------------------------------------------------------
 a        |
 b        |
 c        | スーパーユーザー, DB作成可
 nobody   |
 postgres | スーパーユーザー, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス
 d        | DB作成可
 e        |

5. データベース一覧表示

 データベースの一覧を表示するには「\l」

dbname=# \l
                                     データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |   アクセス権
-----------+----------+------------------+----------+-------------------+-----------------
 -----     | -------- | UTF8             | C        | C                 |
 college   | pgsql    | UTF8             | C        | C                 |
 freebsd   | -------- | UTF8             | C        | C                 |
 myhome    | -------- | UTF8             | C        | C                 |
 postgres  | pgsql    | UTF8             | C        | C                 |
 takuro    | -------- | UTF8             | C        | C                 |
 template0 | pgsql    | UTF8             | C        | C                 | =c/pgsql       +
           |          |                  |          |                   | pgsql=CTc/pgsql
 template1 | pgsql    | UTF8             | C        | C                 | pgsql=CTc/pgsql+
           |          |                  |          |                   | =c/pgsql
(8 行)

6. テーブル一覧表示

 接続中のデータベースのテーブル一覧を表示するには「\dt」

dbname=# \dt

              リレーションの一覧
 スキーマ |     名前     |    型    |  所有者
----------+--------------+----------+----------
 public   | album        | テーブル | --------
 public   | album_order  | テーブル | --------

 	・・・

 public   | week         | テーブル | --------
 public   | youtube      | テーブル | --------
(18 行)

(stdin):	←	ここで入力待ちになるので q で抜けます

7. テキストファイルの実行

 「SQL」を書いたテキストファイルを、「psql」で読み込んで、実行する方法です。  「psql」を起動して。

\i パス/ファイル名
ハイスピードプラン