UNION / EXCEPT / INERSECT절은 다수의 SELECT문의 결과셋을 특정 조건에 따라 통합하는 문법구조 입니다!
다수의 테이블 내 자료형이 같은 컬럼들을 합쳐서 조회할 수 있습니다.
각 각 SELECT 문의 결과셋을 더하는 개념으로 합집합 개념입니다.
UNION
: 유니온 결과 각 테이블의 중복된 행은 1건만 표시합니다.UNOIN ALL
: 유니온 결과 각 테이블의 중복된 행도 다 표시합니다.-- 사용법
# UNION
SELECT 컬럼,,,, FROM 테이블1 [WEHRE 조건절 GROUP BY 컬럼,, HAVING 조건절]
UNION
SELECT 컬럼,,,, FROM 테이블2 [WEHRE 조건절 GROUP BY 컬럼,, HAVING 조건절]
[WEHRE 조건절
GROUP BY 컬럼,,
HAVING 조건절
ORDER BY 정렬조건
LIMIT [시작인덱스, ]개수]
# UNION ALL
SELECT 컬럼,,,, FROM 테이블1 [WEHRE 조건절 GROUP BY 컬럼,, HAVING 조건절]
UNION ALL
SELECT 컬럼,,,, FROM 테이블2 [WEHRE 조건절 GROUP BY 컬럼,, HAVING 조건절]
[WEHRE 조건절
GROUP BY 컬럼,,
HAVING 조건절
ORDER BY 정렬조건
LIMIT [시작인덱스, ]개수]
-- 사용예시
# UNION
SELECT custid, custnm FROM tbl_customer
UNION
SELECT memberId, NAME FROM tbl_member
ORDER BY custnm
;
# UNION ALL
SELECT custid, custnm FROM tbl_customer
UNION ALL
SELECT memberId, NAME FROM tbl_member
ORDER BY custnm
;
다수의 테이블 내 동일한 자료형을 갖는 컬럼을 기준으로 첫 번째 테이블에서 두번째 이후 테이블의 데이터를 제외한 데이터를 최종 결과셋으로 반환합니다.
첫번째 SELECT문의 결과에서 두번째 이후 SELECT문의 결과를 빼는 차집합 개념 입니다.
-- 사용법
SELECT 컬럼,,,, FROM 테이블1 [WEHRE 조건절 GROUP BY 컬럼,, HAVING 조건절]
EXCEPT
SELECT 컬럼,,,, FROM 테이블2 [WEHRE 조건절 GROUP BY 컬럼,, HAVING 조건절]
[WEHRE 조건절
GROUP BY 컬럼,,
HAVING 조건절
ORDER BY 정렬조건
LIMIT [시작인덱스, ]개수]
-- 사용예시
SELECT custid, custnm FROM tbl_customer
EXCEPT
SELECT memberId, NAME FROM tbl_member
ORDER BY custnm
;
다수의 테이블 내 동일한 자료형을 갖는 컬럼을 기준으로 첫 번째 테이블에서 두번째 이후 테이블의 데이터 중 중복되는 데이터만 가져와 결과셋으로 반환합니다.
첫번째 SELECT문에서 두번째 이후 SELECT문 결과셋 중 겹치는 것만 가져오는 교집합 개념입니다.
-- 사용법
SELECT 컬럼,,,, FROM 테이블1 [WEHRE 조건절 GROUP BY 컬럼,, HAVING 조건절]
INTERSECT
SELECT 컬럼,,,, FROM 테이블2 [WEHRE 조건절 GROUP BY 컬럼,, HAVING 조건절]
[WEHRE 조건절
GROUP BY 컬럼,,
HAVING 조건절
ORDER BY 정렬조건
LIMIT [시작인덱스, ]개수]
-- 사용예시
SELECT custid, custnm FROM tbl_customer
INTERSECT
SELECT memberId, NAME FROM tbl_member
ORDER BY custnm
;
MariaDB로 따라 하며 배우는 SQL프로그래밍 데이터베이스 기초에서 실무까지 - 나익수, 서연경 지음
위 책을 공부하며 작성하고 있습니다!