UNION과 UNION ALL의 차이는 정렬작업의 수행 여부이다.
UNION은 중복을 제거해야 하기 때문에 정렬작업을 수행하므로 성능이 저하된다.
UNION, MINUS, INTERSECT는 전체범위를 모두 액세스 하는 정렬작업을 수행하기 때문에 부분범위처리가 불가능하다.
UNION은 두 테이블의 결합을 나타내며, 결합시키는 두 테이블의 중복되지 않은 값들을 반환 한다.
-- 부서번호를 조회하는 UNION 예제. SELECT deptno FROM emp UNION SELECT deptno FROM dept; DEPTNO -------- 10 20 30 40
UNION과 같으나 두 테이블의 중복되는 값 까지 반환 한다.
-- 부서번호를 조회하는 UNION ALL 예제. SELECT deptno FROM emp UNION ALL SELECT deptno FROM dept; DEPTNO ------- 20 30 30 20 30 ... 18 개의 행이 선택되었습니다.
INTERSECT는 두 행의 집합중 공통된 행을 반환 한다.
-- 부서번호를 조회하는 INTERSECT 예제. SELECT deptno FROM emp INTERSECT SELECT deptno FROM dept; DEPTNO --------- 10 20 30
MINUS는 첫 번째 SELECT문에 의해 반환되는 행 중에서 두 번째 SELECT문에 의해 반환되는 행에 존재하지 않는 행들을 반환 한다.
-- 사원이 없는 부서를 조회하는 MINUS 예제. SELECT deptno FROM dept MINUS SELECT deptno FROM emp; DEPTNO --------- 40
- 강좌 URL : http://www.gurubee.net/lecture/1507
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.