SQL設計・ウィンドウ関数・関係代数 重要度:★★★出題: AM2・PM1・PM2

相関副問合せとEXISTS / NOT EXISTS述語

そうかんふくといあわせといぐじすつじゅつご / Correlated Subquery & EXISTS / NOT EXISTS
外側の主問合せの候補行の値を内側の副問合せの検索条件で参照しながら評価を行う副問合せと、条件を満たす行の存在有無を判定する述語。

3行速習ポイント

  • EXISTSは副問合せが1行でも結果を返した時点でTRUEとなり探索を打ち切るため、大量データに対する存在チェックで高速に動作する
  • NOT IN は副問合せの結果に1件でもNULLが含まれると全体がUNKNOWN(結果0件)になる罠があるが、NOT EXISTSはNULLの影響を受けず安全に差集合(未登録・未実績行)を抽出できる
  • 二重否定(NOT EXISTS ... NOT EXISTS)を用いることで、関係代数の「商演算(すべての〇〇を満たす△△)」をSQLで表現できる

図解

図NOT IN と NOT EXISTS の挙動比較
NOT IN (副問合せ)NULLに脆弱
副問合せ結果に1件でもNULLが含まれると評価がUNKNOWNになり抽出結果が0件になる
NOT EXISTS (相関副問合せ)安全・高速
行の存在有無(TRUE/FALSE)のみで判定するためNULLの影響を受けず1件ヒットで高速打切り

概要と本質

午前IIのSQL問題および午後IのSQL穴埋め問題で頻出の構文です。特に「一度も注文がない顧客」「すべての必須研修を受講完了した社員」「最新の履歴行のみを抽出するクエリ」などで相関副問合せが活躍します。

重要ポイント・コア概念

  • NOT IN と NULL の罠:`WHERE x NOT IN (10, 20, NULL)` は `x <> 10 AND x <> 20 AND x <> NULL` と等価になり、3値論理で常にUNKNOWNとなるため1行も抽出されない
  • NOT EXISTS の結合条件:副問合せ内のWHERE句で必ず外側テーブルのキーと内側テーブルのキーを等値結合(`WHERE A.コード = B.コード`)する
  • EXISTS副問合せのSELECT句には何を指定しても評価結果に影響しないため、慣例的に `SELECT 1` または `SELECT *` と記述する

午後I・午後II記述試験での攻略ポイント

午前IIで「同じ結果を得るSQLはどれか(またはNULLが含まれる場合に結果が異なるものはどれか)」が出たら、まず `NOT IN` と `NOT EXISTS` のNULL挙動の違い、および `LEFT OUTER JOIN ... WHERE 右表.主キー IS NULL` との等価性を確認してください。

午後記述で使える加点キーワード(クリックでコピー)

この用語が出題された過去問を解く(1分演習)

即時アウトプットで定着
データベーススペシャリスト 過去問演習で実践力を鍛える

理解を深める推薦副読本

この用語の背景理論・実務動向を深く理解し、午後II小論文の説得力を劇的に高める必読書

PR
ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ
戦略・名著セレクションソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチマーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン
ISBN: 4873119820
🏗️ EA・SoR/SoE・モダナイゼーションの名著

ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ

マーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン

アーキテクチャ特性(非機能要件)の定義と優先度付けモジュラリティ、マイクロサービス、イベント駆動設計のトレードオフレガシーシステムの段階的刷新(モダナイゼーション)設計
なぜこの用語の理解に役立つのか

『相関副問合せとEXISTS / NOT EXISTS述語』の背景にある理論と業界動向を体系的に理解し、実務や小論文に直結する戦略的視点を深掘りできます。

午後II小論文(ST論文)への応用・加点ポイント

エンタープライズアーキテクチャ(EA)やSoR/SoE連携、クラウド移行のアーキテクチャ方針を決定した根拠(トレードオフ判断)を論述する際の強力な武器になります。

※価格・在庫状況は各ECモールの最新情報をご確認ください(もしもアフィリエイト経由)