応用情報暗記無料で始める

SQLの集合演算(UNION・INTERSECT・EXCEPT)とは?えすきゅーえるのしゅうごうえんざん

SQLの集合演算(UNION・INTERSECT・EXCEPT)とは、複数のSELECT文の結果を行の集合とみなして組み合わせる演算。UNIONは和集合で重複行を1行にまとめ、UNION ALLは重複をそのまま残す。INTERSECTは両方に現れる行を、EXCEPT(OracleではMINUS)は左の結果から右にある行を除いた差集合を返す。いずれも各SELECTの列数が同じで、対応する列のデータ型が揃っていることが前提になる。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では2回出題され、ほかに2問の解説で触れられています(2018年度〜2021年度)。

応用情報技術者試験の頻出用語/テクノロジ系

別名:SQLの集合演算、UNION・INTERSECT・EXCEPT、UNION、INTERSECT、EXCEPT

この語が出る過去問を解く →

背景

表を横へ広げる結合(JOIN)だけでは、「Aにあって Bにない」「AとBの両方にある」といった集合としての比較を素直に書けず、NOT EXISTSや外部結合とIS NULLの組合せに頼ることになる。集合演算は、関係モデルが土台に置く集合の考え方をそのままSQLの構文へ持ち込んだもので、意図が読める形で書ける点に価値がある。応用情報では、同じ結果を返す複数の書き方から意図の明確なものを選ばせる形で出る。

具体例

会員制サービスの分析で、「今月の購入者」と「先月の購入者」を返す2つのSELECTをINTERSECTでつなげば2か月連続で購入した会員が、EXCEPTでつなげば先月は買ったが今月は買っていない離反候補が取れる。同じことをNOT EXISTSで書くと入れ子が深くなり、後から読む人に意図が伝わりにくい。

試験での引っ掛け

「ALLが付くほうが重い」と考えがちだが逆で、重複を消すためにソートやハッシュが要るUNIONのほうが遅い。EXCEPTは左右を入れ替えると別の結果になる非可換な演算で、UNIONやINTERSECTと同列に扱えない。集合演算が働くのは行の方向であり、列を横へ足すJOINとは向きが違う点も、選択肢の見分けどころになる。

関連用語

出た過去問

問題文で直接問われたものと、解説の中で触れられたものが含まれます。

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では2回出題(2018年度〜2021年度)
  • 分野:テクノロジ系
  • 「ALLが付くほうが重い」と考えがちだが逆で、重複を消すためにソートやハッシュが要るUNIONのほうが遅い。