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 パス/ファイル名