본문 바로가기

SQL/ORACLE

집합 연산자 : UNION

1. 집합 연산자란?

 

SELECT 
[UNION | UNION ALL | INTERSECT | MINUS]
SELECT

행집합에 대하여 부분 집합을 결과로 반환하는 연산자이다.

UNION : 두 집합에 대해 중복되는 행을 제외한 합집합 (교집합을 한 번만 출력한다.)
UNION ALL : 두 집합에 대해 중복되는 행을 포함한 합집합 (교집합이 총 두 번 출력된다.)
INTERSECT : 두 집합 간의 교집합
MINUS : 두 집합 간의 차집합

📌 사용 주의

집합 연산자는 집합 연산의 대상이 되는 두 테이블의 컬럼 수가 동일하고,

대응되는 컬럼끼리의 데이터 타입 또한 동일해야 사용 가능하다.

 

 

 

2. UNION, UNION ALL 연산

 

UNION과 UNION ALL 은 수학에서의 합집합을 생각하면 된다.

 

예시로 사용할 테이블을 다음과 같이 생성하였다.

그리고 이 테이블에 각각 UNION 과 UNION ALL  연산을 적용하면 다음과 같은 결과를 얻을 수 있다.

 

먼저 실행 전 예상을 해보면

UNION 시에는 박동진, 서재진, 박미경 학생이 출력되어야 할 것이고,

UNION ALL 시에는 박동진, 서재진, 박미경, 서재진 학생이 출력될 것이다.

 

 

3. INTERSECT 연산

 

수학에서의 교집합을 의미하는 연산자이다.

따라서 예시 테이블의 교집합이었던 서재진 학생에 대한 정보를 출력할 수 있게 된다.

 

 

4. MINUS 연산

 

수학에서의 차집합을 의미한다.

A MINUS B : A 테이블과 B 테이블의 합집합에서 B 테이블 행 집합을 삭제한 영역이 출력된다.
                     또는 A 테이블에서 교집합이 삭제된 영역
B MINUS A : A 테이블과 B 테이블의 합집합에서 A 테이블 행 집합을 삭제한 영역이 출력된다.
                     또는 B 테이블에서 교집합이 삭제된 영역

 

'SQL > ORACLE' 카테고리의 다른 글

SQL 단일 행 함수  (0) 2022.10.26
정렬 SORTING  (0) 2022.10.24
NULL 이란?  (0) 2022.10.24
WHERE 절의 조건 적용  (0) 2022.10.22
오라클 데이터 타입  (0) 2022.10.22