PostgreSQLのよく使うコマンド一覧

開発の現場において、PostgreSQLのよく使うコマンド一覧をご紹介します。

条件

  • PostgreSQL 10以降

コマンド一覧

データベースに入る前

バージョン確認

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ psql —version
$ psql —version
$ psql —version

ヘルプ表示

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ psql --help
$ psql --help
$ psql --help

データベース一覧表示

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ psql -l
$ psql -l
$ psql -l

データベースの各種操作

データベースに入る

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ psql <DB_NAME>
$ psql <DB_NAME>
$ psql <DB_NAME>

ユーザーを指定してデータベースに入る

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ psql -U <ROLE_NAME> <DB_NAME>
$ psql -U <ROLE_NAME> <DB_NAME>
$ psql -U <ROLE_NAME> <DB_NAME>

データベース一覧表示

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# \l
# \l
# \l

データベースの切り替え

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# \c <DB_NAME>
# \c <DB_NAME>
# \c <DB_NAME>

データベース作成

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# create database <DB_NAME>;
# create database <DB_NAME>;
# create database <DB_NAME>;
データベースのオーナー指定
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# create database <DB_NAME> owner <OWNER_NAMR>;
# create database <DB_NAME> owner <OWNER_NAMR>;
# create database <DB_NAME> owner <OWNER_NAMR>;
データベースのエンコーディング指定
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# create database <DB_NAME> encoding <ENCODE_NAMR>;
# create database <DB_NAME> encoding <ENCODE_NAMR>;
# create database <DB_NAME> encoding <ENCODE_NAMR>;
上記をまとめて指定した場合の例
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# create database test owner mrs encoding UTF8;
# create database test owner mrs encoding UTF8;
# create database test owner mrs encoding UTF8;

データベース削除

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# drop database <DB_NAME>;
# drop database <DB_NAME>;
# drop database <DB_NAME>;

データベースから出る

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# \q
# \q
# \q

テーブルの各種操作

テーブル一覧表示

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# \d
# \d
# \d
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# \dt
# \dt
# \dt

テーブルのスキーマの詳細表示

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# \d <TABLE_NAME>
# \d <TABLE_NAME>
# \d <TABLE_NAME>

ロール(ユーザー)の各種操作

ロール(ユーザー)作成

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# create role <ROLE_NAME> login;
# create role <ROLE_NAME> login;
# create role <ROLE_NAME> login;
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# create user <ROLE_NAME>;
# create user <ROLE_NAME>;
# create user <ROLE_NAME>;

上記のコマンドは同義です。
→ログイン権限を持つロールを作成します。

以下のコマンドの場合、ログイン権限を持たないロールが作成されます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# create role <ROLE_NAME>;
# create role <ROLE_NAME>;
# create role <ROLE_NAME>;

ロール(ユーザー)の一覧表示

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# \du
# \du
# \du

ロール(ユーザー)属性の変更

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# alter role <ROLE_NAME> login;
# alter role <ROLE_NAME> login;
# alter role <ROLE_NAME> login;
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# alter role <ROLE_NAME> nologin;
# alter role <ROLE_NAME> nologin;
# alter role <ROLE_NAME> nologin;

ロール属性には、以下のようなものがあります。

login, superuser, createdb, createrole, replication, password

ロール属性の詳細については、以下を参照してください。

https://www.postgresql.jp/document/10/html/role-attributes.html

ロール(ユーザー)の削除

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# drop role <ROLE_NAME>;
# drop role <ROLE_NAME>;
# drop role <ROLE_NAME>;

権限の各種操作

ロール(ユーザー)に権限を付与

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# grant <権限> on <TABLE_NAME> to <ROLE_NAME>;
# grant <権限> on <TABLE_NAME> to <ROLE_NAME>;
# grant <権限> on <TABLE_NAME> to <ROLE_NAME>;

権限には、以下のようなものがあります。

select, insert, update, delete, truncate, references, trigger, create, connect, temporary, execute, usage, all privileges

https://www.postgresql.jp/document/10/html/sql-grant.html

よく使うパターンは以下のコマンドです。
(テーブル等の参照、レコード追加、更新、削除の権限を付与。)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# grant select, insert, update, delete on <TABLE_NAME> to <ROLE_NAME>;
# grant select, insert, update, delete on <TABLE_NAME> to <ROLE_NAME>;
# grant select, insert, update, delete on <TABLE_NAME> to <ROLE_NAME>;

ロール(ユーザー)から権限を剥奪

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# revoke <権限> on <TABLE_NAME> to <ROLE_NAME>;
# revoke <権限> on <TABLE_NAME> to <ROLE_NAME>;
# revoke <権限> on <TABLE_NAME> to <ROLE_NAME>;

参考

PostgreSQL 10.5文書

https://www.postgresql.jp/document/10/html/index.html

PostgreSQLのよく使うコマンド一覧” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です