---
note: 講座全体の用語集。回をまたいで繰り返し出る記法・関数・概念語を1行で引く
created: 2026-08-16T10:00:00+09:00
---

# 用語集

[DB講座（全13回）](00-index.md)で回をまたいで繰り返し登場する用語を、1行の説明で引けるようにした
索引である。各回の冒頭にある「この回で新しく出てくる用語」表と同じ説明を載せ、詳しく扱う回への
リンクを添えている。読み進めていて意味が取れない語に出会ったら、まずここを引く。

各回の本編で厚く定義される主題語（B-tree、MVCC など）はここには載せない。載せるのは
「主役として説明される機会がないまま、複数の回で使われる脇役の語」である。ただし除外してよいのは、
その回の本編に実際に定義文がある語に限る。主題語であっても定義が見当たらない場合は、まず本編と
その回の用語表に定義を置き、それでも回をまたいで引く必要があるならここにも載せる。「主題語だから
本編にあるはずだ」と確認せずに外すと、本編・用語表・用語集のどの網からも落ちる語が生まれる。

## 記法・演算子

| 用語 | 一行での説明 | 詳しく扱う回 |
|---|---|---|
| `::`（キャスト） | 値を別の型として解釈し直す記法。`式::型名` と書く | [第5回](05-datatypes-constraints.md) |
| `\|\|` | 文字列どうしを連結する演算子 | [第1回](01-setup-encoding.md) |
| `ARRAY[...]` | 配列を作るリテラル記法。`(ARRAY[...])[n]` で n 番目を取り出す | [第1回](01-setup-encoding.md) |
| `= ANY(配列)` | 配列に含まれるどれかと一致するかを判定する述語。`IN (...)` を1つのパラメータで書ける形 | [第11回](11-app-boundary-injection.md) |
| `@>` | 左が右を含むかを判定する演算子。範囲型・`jsonb` などで使う | [第6回](06-modeling.md) |
| `&&` | 2つの範囲が重なるかを判定する演算子 | [第6回](06-modeling.md) |
| `~~` | `LIKE` と同じ意味の内部表記。`EXPLAIN` の出力に現れる | [第7回](07-storage-indexes-collation.md) |

## 型・構文

| 用語 | 一行での説明 | 詳しく扱う回 |
|---|---|---|
| `VALUES` | 行の並びをその場で書き下し、テーブルとして扱う構文 | [第2回](02-relational-model.md) |
| `interval` | 「3日」「1か月」のような期間・長さを表す型。`interval '3 days'` と書く | [第5回](05-datatypes-constraints.md) |
| `GENERATED BY DEFAULT AS IDENTITY` | 値を省略したとき連番を自動採番する列の宣言。明示的な値の挿入も許す | [第4回](04-normalization.md) |
| `ON CONFLICT ... DO NOTHING` | 一意制約に衝突した行をエラーにせず黙って捨てる `INSERT` の指定 | [第11回](11-app-boundary-injection.md) |
| `DISTINCT ON (列)` | 指定した列の値ごとに、`ORDER BY` の先頭1行だけを残す PostgreSQL 独自の構文 | [第3回](03-writing-sql.md) |
| `RETURNING` | `INSERT`/`UPDATE`/`DELETE` が処理した行の値を、その場で返させる句 | [第6回](06-modeling.md) |
| `DO $$ ... $$` | 関数を定義せずに手続き型のブロックをその場で実行する構文 | [第13回](13-scaling.md) |

## 組み込み関数

| 用語 | 一行での説明 | 詳しく扱う回 |
|---|---|---|
| `generate_series(1, N)` | 1 から N までの整数を1行ずつ返す集合返却関数 | [第1回](01-setup-encoding.md) |
| `date_trunc('month', 時刻)` | 日時を指定した単位で切り捨て、その期間の先頭の時刻を返す関数 | [第3回](03-writing-sql.md) |
| `coalesce(a, b)` | 引数を左から見て、最初に `NULL` でない値を返す関数 | [第3回](03-writing-sql.md) |
| `array_agg(列)` | グループ内の値を1つの配列にまとめる集約関数 | [第3回](03-writing-sql.md) |
| `format(...)` | 書式文字列から SQL 文などの文字列を組み立てる関数。`%L` はリテラル、`%s` は素の文字列 | [第13回](13-scaling.md) |

## PostgreSQL の概念語

| 用語 | 一行での説明 | 詳しく扱う回 |
|---|---|---|
| GUC | サーバやセッションの動作を変える実行時パラメータの総称（Grand Unified Configuration） | [第1回](01-setup-encoding.md) |
| DDL（Data Definition Language） | テーブルや制約など、データの入れ物の定義を変更する SQL の総称（`CREATE`/`ALTER`/`DROP`） | [第5回](05-datatypes-constraints.md) |
| DML（Data Manipulation Language） | 行そのものを読み書きする SQL の総称（`SELECT`/`INSERT`/`UPDATE`/`DELETE`） | [第10回](10-roles-rls-audit.md) |
| スーパーキー | 行を一意に識別できる属性の組。最小である必要はなく、候補キーはその中で最小のもの | [第4回](04-normalization.md) |
| オペレータクラス（opclass） | 索引が値をどの演算子でどう比較するかを決める規則の組。同じ B-tree でも比較の仕方を差し替えられる | [第7回](07-storage-indexes-collation.md) |
| `IMMUTABLE` | 同じ引数なら常に同じ結果を返し、DB の中身を読まない関数につける宣言。式インデックスに使える条件 | [第7回](07-storage-indexes-collation.md) |
| 共有バッファ | PostgreSQL がディスクのページを載せておく共有メモリ上のキャッシュ | [第8回](08-explain.md) |
| 選択率 | 条件を満たす行が全体に占める割合。プランナが読む行数を見積もる基礎になる | [第8回](08-explain.md) |
| `work_mem` | 1回のソートやハッシュ表の作成に使ってよいメモリ量の上限を決める設定 | [第8回](08-explain.md) |
| 拡張統計 | 複数列の相関をプランナに教えるために、明示的に作成する統計情報 | [第8回](08-explain.md) |
| `SQLSTATE` | エラーの種類を表す5文字の標準コード。`40001` は直列化失敗、`40P01` はデッドロック | [第9回](09-transactions.md) |
| `VACUUM` | 不要になった古い行（死タプル）の領域を回収して再利用可能にする保守処理 | [第12回](12-operations-monitoring.md) |
| autovacuum | 更新量に応じて `VACUUM` を自動で走らせる仕組み | [第12回](12-operations-monitoring.md) |
| WAL（Write-Ahead Log） | 変更をデータファイルに反映する前に記録する先行書き込みログ | [第12回](12-operations-monitoring.md) |
| トリガ | 行の挿入・更新・削除に反応して、自動的に指定した関数を実行させる仕組み | [第6回](06-modeling.md) |
| ビュー | 名前を付けて保存した `SELECT` 文。テーブルと同じように参照できる | [第6回](06-modeling.md) |
| 部分索引 | 条件に合う行だけを載せた索引。対象が偏っているとき小さく速い | [第7回](07-storage-indexes-collation.md) |

## 索引の種類

| 用語 | 一行での説明 | 詳しく扱う回 |
|---|---|---|
| B-tree | 値をソート順に並べた多段の木。等値・範囲・並べ替えに効く既定の索引 | [第7回](07-storage-indexes-collation.md) |
| GIN | 1つの値の中に複数の要素を含むもの（配列・`jsonb`・全文）を検索するための索引 | [第7回](07-storage-indexes-collation.md) |
| GiST | 範囲型・幾何型・近傍検索・排他制約のための索引 | [第7回](07-storage-indexes-collation.md) |
| BRIN | 物理的な並び順と値の順序が揃った巨大な表向けの、極小サイズの索引 | [第7回](07-storage-indexes-collation.md) |
| `pg_trgm` | 文字列を3文字の断片に分けて類似度・中間一致検索を可能にする拡張 | [第7回](07-storage-indexes-collation.md) |

## EXPLAIN の出力に出るノード名

すべて[第8回](08-explain.md)で扱う。第7回の実測例にも先に登場するため、意味だけ先に置く。

| 用語 | 一行での説明 |
|---|---|
| Seq Scan | テーブルの全ページを順に読む方式 |
| Index Scan | 索引をたどって該当行の住所を得て、本体を読む方式 |
| Index Only Scan | 必要な列がすべて索引にあり、本体を読まずに完結する方式 |
| Bitmap Index Scan / Bitmap Heap Scan | 索引で「どのページに該当行があるか」の地図を作り、本体をページ順にまとめ読みする2段構えの方式 |
| Nested Loop / Hash Join / Merge Join | 2つの表を結合する3つの方式 |
| Append | 複数の子テーブル（パーティションなど）の結果を順に連結するノード |
| Index Cond | 索引をたどる時点で使えた条件 |
| Filter | 行を読んだ後に捨てるために使われた条件 |
| Buffers | 読んだブロック数。`hit` はキャッシュ命中、`read` はディスク読み |

## その他

| 用語 | 一行での説明 | 詳しく扱う回 |
|---|---|---|
| ORM（Object-Relational Mapping） | オブジェクトとテーブルの行を対応づけ、SQL を書かずに DB を操作させるライブラリの総称 | [第11回](11-app-boundary-injection.md) |
| psql メタコマンド | psql が解釈するバックスラッシュ始まりのコマンド。SQL ではない | [第1回](01-setup-encoding.md) |

## 関連

- [DB講座 全13回](00-index.md)
- [講座修了後のロードマップ](roadmap-after-course.md)
