開発の現場において、PostgreSQLのよく使うコマンド一覧をご紹介します。
目次
条件
- PostgreSQL 10以降
コマンド一覧
データベースに入る前
バージョン確認
$ psql —version
ヘルプ表示
$ psql --help
データベース一覧表示
$ psql -l
データベースの各種操作
データベースに入る
$ psql <DB_NAME>
ユーザーを指定してデータベースに入る
$ psql -U <ROLE_NAME> <DB_NAME>
データベース一覧表示
# \l
データベースの切り替え
# \c <DB_NAME>
データベース作成
# create database <DB_NAME>;
データベースのオーナー指定
# create database <DB_NAME> owner <OWNER_NAMR>;
データベースのエンコーディング指定
# create database <DB_NAME> encoding <ENCODE_NAMR>;
上記をまとめて指定した場合の例
# create database test owner mrs encoding UTF8;
データベース削除
# drop database <DB_NAME>;
データベースから出る
# \q
テーブルの各種操作
テーブル一覧表示
# \d
# \dt
テーブルのスキーマの詳細表示
# \d <TABLE_NAME>
ロール(ユーザー)の各種操作
ロール(ユーザー)作成
# create role <ROLE_NAME> login;
# create user <ROLE_NAME>;
上記のコマンドは同義です。
→ログイン権限を持つロールを作成します。
以下のコマンドの場合、ログイン権限を持たないロールが作成されます。
# create role <ROLE_NAME>;
ロール(ユーザー)の一覧表示
# \du
ロール(ユーザー)属性の変更
# alter role <ROLE_NAME> login;
# alter role <ROLE_NAME> nologin;
ロール属性には、以下のようなものがあります。
login, superuser, createdb, createrole, replication, password
ロール属性の詳細については、以下を参照してください。
https://www.postgresql.jp/document/10/html/role-attributes.html
ロール(ユーザー)の削除
# drop role <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
よく使うパターンは以下のコマンドです。
(テーブル等の参照、レコード追加、更新、削除の権限を付与。)
# grant select, insert, update, delete on <TABLE_NAME> to <ROLE_NAME>;
ロール(ユーザー)から権限を剥奪
# revoke <権限> on <TABLE_NAME> to <ROLE_NAME>;