LoginSignup
29
38

More than 1 year has passed since last update.

はじめてのPostgreSQLに役立つサイト集

Last updated at Posted at 2017-03-21

pg_dump

# 出力形式(-F)をカスタム形式アーカイブ(c)でダンプ出力する
$ pg_dump -Fc -U {接続ユーザ名} {データベース名} > dumpname.dump
オプション 意味 参考サイト
--encoding={文字コード}
-E {文字コード}
指定した文字セット符号化方式でダンプを作成します。 pg_dump - PostgreSQL 12.4文書
-F{フォーマット}
--format={フォーマット}
出力形式を選択 pg_dump - PostgreSQL 13.1文書
--schema-only
-s
データ定義(スキーマ)のみをダンプし、データはダンプしません。 pg_dump - PostgreSQL 12.4文書
-t {テーブル}
--table={テーブル}
一致するテーブル(またはビュー、シーケンス、外部テーブル)のみをダンプします。 pg_dump - PostgreSQL 12.4文書

データ型

分類 型名 説明
文字型 character(n), char(n) 空白でパッドされた固定長文字列
文字型 character varying(n),
varchar(n)
制限付き可変長文字列
文字型 text 制限無し可変長文字列
日付/時刻データ型 timestamp 日付と時刻両方
日付/時刻データ型 date 日付(時刻なし)
日付/時刻データ型 time 時刻(日付なし)

SQL

日時

-- 今日
select current_date;
-- 明日
select current_date + 1;
-- 今
select current_timestamp;
-- 5分前
select current_timestamp + '-5minutes';
-- timestamp型で「2017/04/19 0:00:00」
select to_timestamp('20170419','yyyyMMdd');

GRANT

/* データベースを操作するの権限を付与する */
GRANT ALL ON database {データベース名} TO {ロール名}

INSERT

insertはよくある書き方です。
INSERT INTO table_name [ ( column_name [, ...] ) ]
  { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
  [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

いろんなものが見たいとき

テーブルの***のが見たい
/* カラムの型とかを見たい */
select * from information_schema.columns where table_name like '%見たいテーブル名の一部%' and column_name like '%みたいカラム名一部%';
/* 主キーとか外部キーとかの制約がくっついているカラムを見たい */
select * from information_schema.constraint_column_usage where table_name like '%見たいテーブル名の一部%';
/* テーブルにくっついている制約を見たい */
select * from information_schema.table_constraints where table_name like '%見たいテーブル名の一部%' and constraint_type = '見たい制約(CHECK、FOREIGN KEY、PRIMARY KEY、UNIQUE)';
/* テーブル一覧を見たい */
select * from pg_stat_user_tables;
/* 全Viewの情報が見たい */
SELECT * FROM pg_views;
/* Viewの定義を見たい */
SELECT definition FROM pg_views WHERE viewname = 'foobar';
/* 外部テーブルを見たい */
select * from pg_class where relkind='f' and relname like '%テーブル名%';
テーブル 内容 参考サイト
pg_class テーブルとその他に列を保有しているもの、あるいはテーブルに似た全てのものを目録にしています。 51.11. pg_class-PostgreSQL 12.4文書
データベースの***が見たい
/* データベース一覧を見たい */
SELECT * FROM pg_database;
/* 最大接続数を見たい */
SHOW max_connections;

/* バージョンを見たい */
select version();
                                                    version
----------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.3.15 on x86_64-unknown-linux-gnu, compiled by gcc .......
(1 row)

/* ユーザ一覧が見たい(パスワード見えない版) */
select * from pg_user;
 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |  passwd  | valuntil | useconfig 
----------+----------+-------------+----------+---------+--------------+----------+----------+-----------
 postgres |       10 | t           | t        | t       | t            | ******** |          | 
 mana     |    16384 | t           | f        | f       | f            | ******** |          | 
(2 rows)
/* ユーザ一覧が見たい(パスワード見える版) */
select * from pg_shadow;
 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |               passwd                | valuntil | useconfig 
----------+----------+-------------+----------+---------+--------------+-------------------------------------+----------+-----------
 postgres |       10 | t           | t        | t       | t            |                                     |          | 
 mana     |    16384 | t           | f        | f       | f            | md5a6747d5690695f2d69c556af98aca23b |          | 
(2 rows)

/* 今使っているユーザ名を見たい */
select current_user;
 current_user 
--------------
 mana
(1 row)

よく使いそうなコマンドをメモ

よく使いそうなもの
# ログイン
$ psql -h hostname -U username -d databasename
$ psql -U username -d databasename

# ログアウト
$ \q

# データベースの切り替え
$ \c databasename

# 権限情報
$ \z
                            Access privileges
 Schema | Name | Type | Access privileges | Column privileges | Policies 
--------+------+------+-------------------+-------------------+----------
(0 rows)

# ユーザ一覧
$ \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 mana      | Create DB                                                  | {}
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
メタコマンド
(DB内で使うやつ)
意味 参考リンク
\i {sqlファイル} ファイルから入力を読み取り、キーボードから入力された場合と同じように実行 psql - PostgreSQL 13.1文書
同じ意味で違う書き方シリーズ
/* null検索※NULLとNULLとは"等しい"関係にはありませんので、expression = NULLと記述してはいけません。 */
expression IS NULL
expression ISNULL

テーブルとカラムのcommentが見たい

OracleのSQLを書き換えたい

インストール

ポート設定

起動・停止・再起動

予約語

クライアントツール

困った

29
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
38