BookmarkSubscribeRSS Feed

[SQL] 집합 연산

Started ‎09-23-2024 by
Modified ‎09-23-2024 by
Views 386

집합 연산자는 두 개 이상의 테이블에서 Join을 사용하지 않고 연관된 데이터를 조회하는 방법으로 SELECT 한 컬럼의 수와 컬럼의 데이터 타입이 동일해하는 조건이 필요합니다.

집합 연산자에는 UNION(합집합), INTERSECT(교집합), EXCEPT(차집합)이 있습니다.

각각의 특징에 대해서 알아보겠습니다.

1. UNION - 합집합

두 개의 테이블을 하나로 만드는 연산으로 합친 이후에는 중복된 데이터를 제거합니다.

 

테이블 A테이블 A

 

테이블 NewTable_1테이블 NewTable_1

 

 

SELECT * FROM A 
UNION
SELECT * FROM NewTable_1;

 

결과결과

 

 

UNION문을 활용하려면 SELECT문의 컬럼의 갯수와 컬럼의 데이터 타입이 동일해야합니다.

중복된 행을 제거하고 중복된 행을 모두 포함하고 싶으면 UNION ALL을 사용해야합니다.

또한, SELECT절에 사용한는 컬럼의 순서가 같아야합니다.

2. INTERSECT

두 테이블에서 겹치는 부분을 추출합니다. 추출 후에는 중복된 결과를 제거합니다.

 

테이블 A테이블 A

 

테이블 NewTable_1테이블 NewTable_1

 

 

SELECT * FROM A 
INTERSECT
SELECT * FROM NewTable_1;

 

결과결과

 

 

 

3. Except

차집합으로 Minus라고 생각할 수 있습니다.

두 테이블에서 겹치는 부분을 앞의 테이블에서 제외하여 추출합니다. 추출 후에는 중복된 결과를 제거합니다.

 

 

SELECT * FROM A 
except
SELECT * FROM NewTable_1;

 

image.png

Version history
Last update:
‎09-23-2024 10:24 AM
Updated by:
Contributors

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Article Labels
Article Tags