Database/SQL

[Oracle] 집합연산자 : UNION, UNION ALL, INTERSECT, MINUS

헹창 2019. 12. 27.
반응형

[Oracle] 집합연산자 : UNION, UNION ALL, INTERSECT, MINUS

 

 

집합연산자는 데이터베이스에서 데이터를 조회(SELECT)할 때 쿼리의 결과를 대상으로 연산을 수행하는 연산자이다.

 

 

국어,영어,수학,사회,과학 수업을 듣는 1학년 테이블과 국어,영어,수학,사회,과학 수업을 듣는 2학년 테이블로 예제를 살펴보자.

 

 

 

1. UNION : 합집합

 

- 두 테이블의 결합을 나타내며, 두 테이블의 중복되는 값은 제거되어 수행 결과 한번만 나오게 된다.

 

 

사용 예시

 

SELECT SUBJECT FROM GRADE1
UNION 
SELECT SUBJECT FROM GRADE2

 

결과 

 

- GRADE1테이블과 GRADE2 테이블의 공통 과목인 국어, 사회, 과학이 두 번씩 나오는 것이 아닌 한 번만 반환 된다.

 

 

 

 

2. UNION ALL : 중복을 포함한 합집합

 

- 두 테이블의 결합을 나타내며, 두 테이블의 결합되는 모든 값(중복 포함)을 반환 한다.

 

 

사용 예시

 

SELECT SUBJECT FROM GRADE1
UNION ALL
SELECT SUBJECT FROM GRADE2

 

결과 

 

- GRADE1테이블과 GRADE2 테이블의 공통 과목인 국어, 사회, 과학이 중복되어 반환 된다.

 

 

 

 

3. INTERSECT : 교집합

 

- 두 테이블의 집합 중 공통된 행을 반환 한다.

 

 

사용 예시

 

SELECT SUBJECT FROM GRADE1
INTERSECT
SELECT SUBJECT FROM GRADE2

 

결과 

 

- GRADE1테이블과 GRADE2 테이블의 공통 과목인 국어, 사회, 과학이 반환 된다.

 

 

 

 

4. MINUS : 차집합

 

-  첫 번째 테이블을 기준으로, 나머지 테이블에 있는 행을 제외한 행들을 반환 한다.

 

 

사용 예시1

 

SELECT SUBJECT FROM GRADE1
MINUS
SELECT SUBJECT FROM GRADE2

 

결과 

 

- GRADE1 테이블에서 GRADE2 테이블의 국어,영어,수학,사회,과학을 제외한 행이 반환 된다.

 

 

헷갈릴 수 있으니 반대로도 한 번 해보자.

 

 

사용 예시2

 

SELECT SUBJECT FROM GRADE2
MINUS
SELECT SUBJECT FROM GRADE1

 

결과

 

- GRADE2 테이블에서 GRADE1 테이블의 국어,사회,과학,음악,미술을 제외한 행이 반환 된다.

 

 

 

 

728x90
반응형

댓글

추천 글