Notice
Recent Posts
Recent Comments
관리 메뉴

안까먹을라고 쓰는 블로그

[SQL Query] UNION, INTERSECT, EXCEPT (Feat. 집합연산) 본문

DataBase

[SQL Query] UNION, INTERSECT, EXCEPT (Feat. 집합연산)

YawnsDuzin 2022. 1. 6. 10:14

 

반응형

여러개의 테이블의 합집합을 구할 때는 UNION(합)이라는 연산자를 사용합니다.


■ UNION으로 합집합 구하기

SELECT * FROM Address
UNION
SELECT * FROM Address2

결과는 문자 그대로 두 개의 테이블을 합친 결과가 나옵니다.

※ 중복제거 관련
 - UNION으로 합집할을 구할 때는 중복된 레코드가 있으면 제거 합니다. "INTERSECT", "EXCEPT" 등에서도 같습니다.       만약 중복을 제외하고 싶지 않다면 "UNION ALL"처럼 "ALL" 옵션을 붙이면 됩니다.

■ INTERSECT로 교집합 구하기

SELECT * FROM Address
INTERSECT
SELECT * FROM Address2

결과는 양쪽 테이블에 공통으로 존재하는 레코드만 출력 됩니다.
중복 된 것이 있다면 해당 레코드는 제외됩니다.


■ EXCEPT로 차집합 구하기

SELECT * FROM Address
EXCEPT
SELECT * FROM Address2

이를 수식으로 나타내면 'Address - Address2' 가 됩니다. 그래서 EXCEPT에는 UNION과 INTERSECT에는 없는 주의 사항이 있습니다. UNION과 INTERSECT는 어떤 테이블을 먼저 적든 그 순서와 상관없이 결과가 같습니다. 하지만 EXCEPT의 경우는 결과가 다릅니다.

※ ORACLE을 사용시에는 EXCEPT 가 아니고, 독저작으로 MINUS라는 이름의 연산자를 사용하고 있습니다.

반응형
Comments