티스토리 뷰

SQL에서 집합과 관련된 연산자에는 UNION, UNION ALL, INTERSECT, MINUS가 있습니다.

UNION과 UNION ALL의 차이는 정렬 작업을 수행하는지에 대한 여부에 있습니다.

UNION은 중복을 제거해야 하기 때문에 정렬작업을 수행하므로 성능이 저하됩니다.

UNION, MINUS, INTERSECT는 전체 범위를 모두 액세스하는 정렬작업을 수행하기 때문에 부분 범위 처리가 불가능합니다.

UNION - 합집합

UNION은 두 테이블의 결합을 나타내며, 결합시키는 두 테이블의 중복되지 않는 값들을 반환합니다.

-- 부서번호를 조회하는 UNION 예제.
SELECT deptno FROM emp
 UNION
SELECT deptno FROM dept;
 
 
DEPTNO
--------
      10
      20
      30
      40

UNION ALL - 중복을 포함하는 합집합

UNION과 같으나 두 테이블의 중복되는 값 까지 반환합니다.

-- 부서번호를 조회하는 UNION ALL 예제.
SELECT deptno FROM emp
 UNION ALL
SELECT deptno FROM dept;
 
 
DEPTNO
-------
     20
     30
     30
     20
     30
...
18 개의 행이 선택되었습니다.

INTERSECT - 교집합

INTERSECT는 두 행의 집합 중 공통된 행을 반환합니다.

-- 부서번호를 조회하는 INTERSECT 예제.
SELECT deptno FROM emp
INTERSECT
SELECT deptno FROM dept;
 
 
DEPTNO
---------
       10
       20
       30

MINUS - 차집합

MINUS는 첫 번째 SELECT문에 의해 반환되는 행 중에서 두 번째 SELECT문에 의해 반환되는 행에 존재하지 않는 행들을 반환합니다.

-- 사원이 없는 부서를 조회하는 MINUS 예제.
SELECT deptno FROM dept
 MINUS
SELECT deptno FROM emp;
 
 
DEPTNO
---------
       40

참고

http://www.gurubee.net/lecture/1507

 

UNION [ALL], INTERSECT, MINUS 연산자

UNION과 UNION ALL의 차이는 정렬작업의 수행 여부이다. UNION은 중복을 제거해야 하기 때문에 정렬작업을 수행하므로 성능이 저하된다. UNION,..

www.gurubee.net

 

'Database > 공통' 카테고리의 다른 글

[DB]Query 최적화 및 튜닝 기술  (1) 2024.09.28
[DB]WITHIN GROUP 구문  (0) 2024.09.27
[DB]내장 함수  (0) 2024.09.11
[DB]Redo와 Undo로 데이터 복구하기  (0) 2024.08.30
[DB]CLOB과 BLOB  (0) 2024.08.28
글 보관함
최근에 올라온 글
Total
Today
Yesterday