基本構文

11 コマンド

テーブルからデータを抽出 SELECT

テーブルからデータを取り出す最も基本の句。取り出す列の指定(ワイルドカード/明示列)、エイリアス、計算列の書き方を押さえる

取得元テーブルを指定 FROM

取得元のテーブルやビュー、サブクエリを指定する句。テーブルエイリアスと FROM 内サブクエリを解説

行を条件で絞り込む WHERE

行を絞り込む句。比較・論理演算子、IN・BETWEEN・LIKE、NULL 扱いの注意点を押さえる

結果を並び替える ORDER BY

結果を並び替える句。ASC/DESC、NULLS FIRST/LAST、複数キー、式による並び替えを整理

件数を制限・ページング LIMIT / OFFSET

件数制限とページング。OFFSET の性能落とし穴と keyset pagination への移行を解説

重複行を除外 DISTINCT

結果から重複行を排除する。DISTINCT ON など PostgreSQL 拡張や GROUP BY との使い分けも解説

条件分岐で値を作る CASE 式

SQL の条件分岐。簡易 CASE と検索 CASE、SELECT / WHERE / ORDER BY / 集約と組み合わせた活用法

NULL を扱う NULL の扱い

3 値論理、IS NULL / IS NOT NULL、COALESCE / NULLIF / NVL、NULL による集約や比較のハマりどころ

型を変換する CAST / 型変換

明示的な型変換 CAST(x AS type) と :: 記法(PostgreSQL)、暗黙変換の危険と安全な書き方

クエリの中にクエリを書く サブクエリ

スカラー・行・表サブクエリと相関サブクエリ、EXISTS / IN の使い分け、NOT IN の NULL 罠

共通テーブル式に名前を付ける CTE (WITH 句)

WITH 句で名前付きの一時結果を定義。可読性向上、再帰 CTE で階層構造、MATERIALIZED ヒントにも触れる