반응형
집한 연산자 정의
두 개 이상의 쿼리 결과를 하나로 결합할 때 사용하는 연산자
집합 연산자 종류
집합 연산자 | 설명 |
UNION (합집합) | 두 개의 쿼리 결과를 더해서 정렬 후 출력 (중복 제거) |
UNION ALL (합집합) | 두 개의 쿼리 결과를 더해서 정렬없이 출력 (중복 있음) |
INTERSECT (교집합) | 두 개의 쿼리 결과 중 같은 것만 정렬 후 출력 |
MINUS (차집합) | 앞 쿼리 결과 - 뒤 쿼리 결과를 정렬 후 출력 |
집합 연산자 사용 방법
1. UNION
SELECT *
FROM FOOD
WHERE FOOD_ID > 108
UNION
SELECT *
FROM FOOD
WHERE PARENT_FOOD_ID = 103
UNION 연산자는 두 개의 쿼리 결과를 더해서 중복을 제거한 후에 출력되기 때문에 중복값인 짬뽕과 탕수육이 한 번씩만 출력되는 것을 볼 수 있습니다.
2. UNION ALL
SELECT *
FROM FOOD
WHERE FOOD_ID > 108
UNION ALL
SELECT *
FROM FOOD
WHERE PARENT_FOOD_ID = 103
UNION 연산자와 다르게 중복값을 신경쓰지 않기 때문에 중복값인 탕수육과 짬뽕이 두 번씩 출력되는 것을 볼 수 있습니다.
3. INTERSECT
SELECT *
FROM FOOD
WHERE FOOD_ID > 108
INTERSECT
SELECT *
FROM FOOD
WHERE PARENT_FOOD_ID = 103
두 개의 쿼리 결과 중에 중복되는 값인 탕수육과 짬뽕만 출력되는 것을 볼 수 있습니다.
4. MINUS
SELECT *
FROM FOOD
WHERE PARENT_FOOD_ID = 103 -- A 쿼리
MINUS
SELECT *
FROM FOOD
WHERE FOOD_ID > 108 -- B 쿼리
A 쿼리 결과(짜짱면, 탕수육, 짬뽕)에서 B 쿼리 결과(짬뽕, 탕수육)을 뺀 결과가 출력되는 것을 볼 수 있습니다.
반응형
'개발 & 데이터베이스 > DB' 카테고리의 다른 글
오라클 그룹화 함수 (GROUP BY, HAVING) (0) | 2022.01.16 |
---|---|
[ORACLE] 시퀀스(Sequence) 생성과 사용 방법 (0) | 2021.12.20 |
[ORACLE] BLOB 타입 조회하는 방법 (0) | 2021.12.02 |
[ORACLE] 인덱스 (Index) 조회, 사용 여부 조회 및 리빌드 (2) | 2021.12.02 |
[ORACLE] MERGE INTO 문으로 INSERT와 UPDATE 동시에 사용하기 (0) | 2021.12.01 |