[SQL] SQL 집합 연산자

JUNBEOM PARK·2022년 3월 7일

💡 SQL

목록 보기
2/7
post-thumbnail

🤔 집합 연산자?

집합 연산자는 조회(SELECT) 쿼리의 결과를 대상으로 연산을 수행하는 연산자.
UNION, UNION ALL, MINUS, INSERTSECT 등이 있다.

조회의 결과를 대상으로 연산을 수행하므로, 여러 개의 SELECT문을 하나의 쿼리로 만드는 연산자 이다.


1. UNION

UNION 은 합집합 개념이다. 철수와 영희가 같이 듣는 국어와 영어는 수행 결과 한번만 나오게 된다.

코드

SELECT subject
FROM timetable
WHERE name='철수'
UNION
SELECT subject
FROM timetable
WHERE name='영희';

결과

subject
--------
국어
영어
수학
사회
과학
도덕


2. UNION ALL

UNION 과 유사 하지만 중복된 항목도 모두 조회 한다.

코드

SELECT subject
FROM timetable
WHERE name='철수'
UNION ALL
SELECT subject
FROM timetable
WHERE name='영희';

결과

subject
--------
국어
영어
수학
국어
사회
과학
도덕


3. INTERSECT

INTERSECT는 교집합을 의미한다.

코드

SELECT subject
FROM timetable
WHERE name='철수'
INTERSECT
SELECT subject
FROM timetable
WHERE name='영희';

결과

subject
--------
국어
영어


4. MINUS

MINUS는 차집합을 의미한다. 먼저 위치한 SELECT문을 기준으로 다른 SELECT문과 공통된 레코드를 제외한 항목만 추출된다.

코드

SELECT subject
FROM timetable
WHERE name='철수'
MINUS
SELECT subject
FROM timetable
WHERE name='영희';

결과

subject
--------
수학


❗ 주의 할 점

  1. SELECT문들은 같은 개수의 컬럼을 조회해야만 한다.
  2. SELECT문들이 여러 개의 컬럼을 조회할 경우, 모든 컬럼에 대해 집합 연산을 수행한다.
  3. ORDER BY문은 맨 마지막에만 사용할 수 있다.
profile
DB 엔지니어👍

0개의 댓글