Categories: SQL言語

SQLの集合演算子。3つの図解を用いて初心者向けに解説

今回は、SQLの代表的な集合演算子[UNION][EXCEPT][INTERSECT]について、それぞれの概要を初心者向けに解説します。

集合演算子は、RDBMSの基本概念であるテーブル構造の検索結果同士を1つの結果にまとめるために使われます。ただし、元々、違うテーブルからの検索結果同士のため、重複するデータが含まれている場合の扱いなど、用途に応じて考えなければなりません。

この記事では、SQLの集合演算子について、ベン図と呼ばれる集合の関係を表す図を用いて説明します。

SQLの集合演算子の基本

SQLの集合演算子は、2つの異なるテーブルからの検索結果を1つにまとめるときに使います。

集合の条件

集合演算子を使って1つにまとめるためには、2つの検索結果のデータ構造が一致していなければなりません。具体的には、それぞれの検索結果の列数とデータ型が完全に一致していることが集合の条件となります。

集合のイメージ

補足ですが、あくまでも列数とデータ型の完全一致が求められるのは、検索結果に対してです。

列数等が異なるテーブル同士でも、SELECT〜WHEREの検索結果で列数とデータ型が一致していれば、集合演算子を使って1つにまとめることができます。

SQLの集合演算子について

SQLの代表的な集合演算子は、[UNION]、[EXCEPT]、[INTERSECT]の3つです。この章では、それぞれの集合演算子の概要について説明します。

UNION(和集合)

まずは、集合演算子の中でも最もシンプルかつ代表的な[UNION]です。UNIONは和集合の仕組みの集合演算子で、2つの検索結果を単純にまとめます。

集合後の検索結果には、下記のデータがすべて存在します。

  1. Aテーブルからの検索結果だけにあるデータ
  2. Bテーブルからの検索結果にだけあるデータ
  3. Aテーブル、Bテーブル両方の検索結果にあるデータ
UNION(和集合)のベン図
和集合の重複

UNION(和集合)の結果、重複するデータがある場合には、その重複データを1行にまとめるか、それぞれ抽出するかについては、SQL文で操作することができます。

EXCEPT(差集合)

次に[EXCEPT]です。EXCEPTは差集合の仕組みの集合演算子で、1つ目の検索結果を元に、2つ目の検索結果に存在するデータを差し引いたものが集合結果となります。

つまり、EXCEPT(差集合)の結果は1つ目の検索結果のみに存在するデータのみが残ります。たとえば、今月新規で発生した費目などを抽出するときに使います。

EXCEPT(差集合)のベン図

INTERSECT(積集合)

最後に、[INTERSECT]です。INTERSECTは積集合の仕組みの集合演算子で、1つ目の検索結果と2つ目の検索結果に存在する共通データのみが集合結果となります。

INTERSECT(積集合)のベン図

あとがき

今回は、SQLの集合演算子の概要について、それぞれのベン図を用いて説明しました。

当記事では概要のみの説明となりますが、実際のSQL文や実例については、別記事で説明します。まずは、集合演算子の基本となる3つのパターンについて、イメージを正確に理解しておきましょう。

Analytics沖縄

データサイエンス・機械学習・ディープラーニングを本格的に研究するフリーランスエンジニア。 「Google データアナリティクス プロフェッショナル」の認定証を取得済み。 この分野は専門知識がなければ理解し辛い情報が多いのですが、当サイトでは初学者も意識して発信していきますので、ご関心があればぜひご覧ください。

Recent Posts

MySQLの日付型や時刻型で使う関数のフォーマット指定子

今回は、MySQLの日付型や時…

3か月 ago

SQL│文字列を日付型に変換するTo_Date・Convert

今回は、SQLで文字列を日付型…

4か月 ago

SQL│文字列型CHAR・VARCHARの違いと使い分けを解説

今回は、SQLのデータ型のうち…

4か月 ago

SQL|通貨型MONEY・SMALLMONEYの使い所は?

今回は、SQLの通貨型MONE…

4か月 ago