UNION과 UNION ALL의 차이는 정렬작업의 수행 여부이다.
UNION은 중복을 제거해야 하기 때문에 정렬작업을 수행하므로 성능이 저하된다.
UNION, MINUS, INTERSECT는 전체범위를 모두 액세스 하는 정렬작업을 수행하기 때문에 부분범위처리가 불가능하다.
UNION : 합집합
UNION은 두 테이블의 결합을 나타내며, 결합시키는 두 테이블의 중복되지 않은 값들을 반환 한다.
-- 부서번호를 조회하는 UNION 예제.SELECT deptno FROM emp UNIONSELECT deptno FROM dept;DEPTNO-------- 10 20 30 40 |
UNION ALL : 중복을 포함하는 합집합
UNION과 같으나 두 테이블의 중복되는 값 까지 반환 한다.
-- 부서번호를 조회하는 UNION ALL 예제.SELECT deptno FROM emp UNION ALLSELECT deptno FROM dept;DEPTNO------- 20 30 30 20 30...18 개의 행이 선택되었습니다.INTERSECT : 교집합
INTERSECT는 두 행의 집합중 공통된 행을 반환 한다.
-- 부서번호를 조회하는 INTERSECT 예제.SELECT deptno FROM empINTERSECTSELECT deptno FROM dept;DEPTNO--------- 10 20 30 |
MINUS : 차집합
MINUS는 첫 번째 SELECT문에 의해 반환되는 행 중에서 두 번째 SELECT문에 의해 반환되는 행에 존재하지 않는 행들을 반환 한다.
-- 사원이 없는 부서를 조회하는 MINUS 예제.SELECT deptno FROM dept MINUSSELECT deptno FROM emp;DEPTNO--------- 40'Database > Oracle SQL' 카테고리의 다른 글
| 10.2. VIEW 테이블 (0) | 2019.04.24 |
|---|---|
| 10.1. 인덱스(Index) (0) | 2019.04.24 |
| 9.2. 데이터 사전(Data Dictionary) 정보조회 (0) | 2019.04.24 |
| 9.1. 데이터 사전(Data Dictionary)이란? (0) | 2019.04.24 |
| 7.6. Scalar Subquery (0) | 2019.04.19 |
| 7.5. Inline View (From절 Subquery) (0) | 2019.04.19 |
| 7.4. Multiple-Column Subquery (0) | 2019.04.19 |
| 7.3. Multiple-Row Subquery (0) | 2019.04.19 |