PostgreSQL
エンジニアのためのWebチートシート
PostgreSQLは、高い信頼性と豊富な機能を持つオープンソースのリレーショナルデータベースです。 JSONB、配列型、ウィンドウ関数、CTEなど強力な機能を備えています。 psqlコマンド、データ型、テーブル定義、JSONB操作、インデックス、運用などをチートシートにまとめました。
psql コマンド
接続 & 基本操作
psql でデータベースに接続する方法です。
メタコマンド(情報表示)
データベースの構造を確認するメタコマンドです。
便利機能
psql の実用的な操作コマンドです。
データ型
PostgreSQL の主要なデータ型の一覧です。
| 型 | 説明 |
|---|---|
smallint / integer / bigint | 2/4/8バイト整数 |
numeric(p,s) / decimal(p,s) | 正確な小数(金額など) |
real / double precision | 浮動小数点数(4/8バイト) |
text / varchar(n) / char(n) | 文字列(text 推奨) |
boolean | true / false / null |
timestamptz / timestamp | 日時(timestamptz 推奨) |
date / time / interval | 日付 / 時刻 / 期間 |
jsonb / json | JSONデータ(jsonb 推奨、インデックス対応) |
uuid | UUID(gen_random_uuid() で生成) |
type[] | 配列型(任意の型で利用可能) |
inet / cidr / macaddr | ネットワークアドレス |
bytea | バイナリデータ |
配列
配列型の定義と操作です。
JSON / JSONB 型
jsonb 型の基本操作です。json よりも jsonb を推奨します。
テーブル定義
CREATE TABLE
テーブルの作成です。GENERATED ALWAYS AS IDENTITY が推奨されます。
ALTER TABLE
カラムの追加、変更、削除です。
制約
主キー、外部キー、CHECK制約などです。
PostgreSQL固有の構文
RETURNING & UPSERT
INSERT/UPDATE/DELETEの結果を返す RETURNING と、ON CONFLICT による UPSERT です。
DISTINCT ON & ILIKE
PostgreSQL固有の強力なクエリ構文です。
LATERAL JOIN & 集合演算
相関サブクエリ的な LATERAL JOIN と集合演算です。
JSON / JSONB
JSONB の演算子一覧です。
| 演算子 | 説明 |
|---|---|
-> | キー/インデックスで取得(JSON型で返す) |
>> | キー/インデックスで取得(テキストで返す) |
#> | パスで取得(JSON型)例: data #> '{a,b}' |
#>> | パスで取得(テキスト型) |
? | キーが存在するか |
@> | 左が右を含むか |
|| | JSONB の連結(マージ) |
- | キーまたは配列要素の削除 |
#- | パス指定で削除 |
JSONB クエリ & 更新
JSONB データの検索と更新です。
JSONB 関数
JSONB の主要な関数です。
ウィンドウ関数 & CTE
ウィンドウ関数
行番号、順位、前後の行の値を取得する関数です。
CTE(共通テーブル式)
WITH句を使った可読性の高いサブクエリです。
再帰CTE
階層データやツリー構造をたどる再帰クエリです。
インデックス & パフォーマンス
PostgreSQL がサポートするインデックス種類の一覧です。
| 種類 | 用途 |
|---|---|
B-tree | デフォルト。等値・範囲・ソートに最適 |
Hash | 等値検索のみ(B-treeで代替可能な場合が多い) |
GIN | JSONB、配列、全文検索に最適 |
GiST | 幾何データ、範囲型、全文検索 |
BRIN | 時系列・ログデータ(非常にコンパクト) |
SP-GiST | IPアドレス、電話番号など非均衡データ |
実践インデックス
用途別のインデックス作成パターンです。
EXPLAIN & 分析
クエリの実行計画を確認する方法です。
ユーザー & 権限
ロール管理
ユーザー/ロールの作成と管理です。
権限
テーブルやスキーマへの権限付与です。
トランザクション
BEGIN/COMMIT/ROLLBACK とセーブポイントです。
運用 & バックアップ
バックアップ & リストア
pg_dump / pg_restore によるバックアップと復元です。
VACUUM & メンテナンス
統計情報の更新と不要領域の回収です。
引用・参考リンク
Related Cheatsheets
- SQL-SQL(Structured Query Language)は、リレーショナルデータベースを操作するための言語です。 SELECT、INSERT、UPDATE、DELETE、JOIN、集約関数などの基本構文をチートシートにまとめました。
- MongoDB-MongoDBは、ドキュメント指向のNoSQLデータベースです。 JSON風のドキュメントを柔軟に格納でき、スケーラビリティに優れています。 CRUD操作、クエリ・更新演算子、集約パイプライン、インデックス、データモデリングなどをチートシートにまとめました。
- Redis-Redisは、高速なインメモリデータストアです。 キャッシュ、セッション管理、リアルタイムランキング、メッセージキューなど幅広い用途に使われます。 データ型、キー管理、Pub/Sub、ストリーム、トランザクション、実用パターンなどをチートシートにまとめました。
Related Goods
WebTerm - Recommended tools
WebTermは、ブラウザでLinuxコマンド・Gitコマンドを安全に実行でき、チュートリアル式で学べるターミナルサンドボックスです。
AIコーディングツールの普及に伴い、CLIの基礎知識を身につける重要性は増しています。実際のターミナルを操作するのに抵抗がある方でも、WebTermはローカル環境を壊す心配がありません。「会員登録不要・無料」で利用でき、学習環境として最適です。

WebTerm
Browser Terminal Sandbox for Learning CLI
All Cheatsheets



