
150
러닝 SQL
집합
A
와
B
를 합친 데이터 중에 겹치는 영역만 제외한 데이터를 찾으려 합니다. 앞에서 설명
한 세 가지 연산 중 하나만으로는 이 결과를 얻을 수 없습니다. 대신, 먼저 집합
A
와
B
를 모두
포함하는 데이터 집합을 생성한 다음, 두 번째 연산을 사용해서 겹치는 영역을 제거해야 합니
다. 결합 집합은
A
union
B
로 정의하고 겹치는 영역은
A
intersect
B
로 정의합니다.
[그림
6
-
4
]에 표시된 데이터 집합을 생성하는 데 필요한 연산은 다음과 같습니다.
(A union B) except (A intersect B)
물론, 여러 가지 다른 방법으로도 동일한 결과를 얻을 수 있습니다. 예를 들면 다음 연산을 사
용해도 비슷한 결과를 얻을 수 있습니다.
(A except B) union (B except A)
이 개념들은 다이어그램을 사용하여 쉽게 이해할 수 있습니다. 다음 절에서는
SQL
집합 연산
자를 사용하여 이러한 개념을 관계형 데이터베이스에 적용하는 방법을 설명하겠습니다.
6.2
집합 이론 실습
앞에서 데이터 집합을 설명하려고 사용한 다이어그램은 데이터 집합을 구성하는 요소가 무엇
인지 설명하지 않습니다. 그러나 실제 데이터를 다룰 때는 결합할 데이터 집합의 구성을 설명
해야 합니다. 예를 들어 다음과 같이 정의된
customer
테이블과 ...