Skip to content

집합연산자

일반적으로 수학에서 사용되는 집합연산으로는 합집합, 교칩한, 차집합, 곱집합등이 있다. SQL문에서도 각각의 일반집합연산에 해당하는 명령어가 존재한다.

일반집합연산자SQL문설명
합집합
(UNION 연산)
UNION, UNION ALL- UNION 연산은 수학적으로 합집합을 하는 연산이다.
- UNION은 교집합의 중복을 제거한 결과를 나타내기 때문에, 정렬 작업으로 인한 시스템 부하가 일어날 수 있다.
- UNION ALL을 쓰면 중복 결과를 그대로 보여준다.
- 만일 UNION과 UNION ALL의 출력 결과가 같다면 응답속도 향상, 자원 효율화 측면에서 UNION ALL을 쓰는것이 더 낫다.
교집합
(INTERSECTION 연산)
INTERSECT- INTERSECTION은 수학의 교집합을 제공하기 위한 함수이다.
- 두 집합의 공통 집합(공통된 행)을 추출한다.
차집합
(DIFFERENCE 연산)
EXCEPT, (Oracle) MINUS- DIFFERNCE는 수학의 차집합으로서 첫 번쨰 집합에서 두 번째 집합을 제외한 부분이다.
- Oracle 외 대다수의 DBMS 제품은 EXCEPT를 사용하고 오라클은 MINUS라는 용어를 사용한다.
PRODUCT 연산CROSS JOIN- PRODUCT 연산은 CROSS(ANSI/ISO 표준) PRODUCT라고 불리는 곱집합으로 JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 말한다.
- 양쪽 집합의 M*N 건의 데이터 조합이 발생한다.
- 카테시안 곱(CARTESIAN PRODUCT)라고도 불린다.