- 하나의 SELECT 문장이 반환한 결과를 한 집합으로 보고, 한 개 이상의 SELECT 문장이 집합 연산자로 연결된 형태
- 여러 개의 SELECT 문이 연결되어 최종적으로는 하나의 결과 집합이 만들어짐
- UNION, UNION ALL, INTERSECT, MINUS 4개 연산자 존재
SELECT ...
FROM ...
WHERE ...
집합연산자
SELECT ...
FROM...
WHERE ...
ORDER BY
- 제한 사항
-SELECT 절의 컬럼 수, 데이터 타입은 동일★
-최종 반환되는 컬럼명은 맨 첫 SELECT 절의 컬럼
-ORDER BY절은 맨 마지막 SELECT 문장에서만 붙일 수 있음
1. UNION(합집합)
- 두 문장의 SELECT 절에 명시하는 컬럼 수, 데이터 타입은 동일해야 함
- 조회된 결과의 컬럼명은 첫 번째 SELECT 문장의 컬럼명으로 보임
- ORDER BY 절은 맨 마지막에 붙일 수 있음 (생략 가능)
- 각 결과 집합에서 조회된 중복 값은 1번만 조회됨
2. UNION ALL
- UNION과 동일하나 중복값도 모두 조회됨
- 나머지 내용은 UNION과 동일
3. INTERSECT
- 두 집합의 공통 원소를 가져오는 교집합 개념
4. MINUS
- 선두 집합에만 있는 원소를 가져오는 차집합 개념
Examples
- Union
집합 연산자는 언제 사용할까?
- UNION(ALL)
1. 구조가 다른 여러 테이블에서 동일한 형태의 데이터를 추출하는 경우
-테이블 옆으로 합친 후 집계
2. 컬럼을 로우 형태로 전환해 조회할 경우
-테이블 쪼갠 후 테이블 아래로 합체
1. 구조가 다른 여러 테이블에서 동일한 형태의 데이터를 추출하는 경우
-테이블 옆으로 합친 후 집계
ex. 계획 대비 실적은?(예산 테이블 + 매출 테이블)
-> 파란색 부분은 SUB QUERY로 뒤에서 배움
-> 주의 : 나눗셈 시 항상 분모에 0이 들어갈것을 고려해서 분모에 대한 0처리를 해주어야 함
2. 컬럼을 로우로
-테이블 쪼갠 후 테이블 아래로 합체