일반적으로 수학에서 사용되는 집합연산으로는 합집합, 교칩한, 차집합, 곱집합등이 있다. 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)라고도 불린다. |