UNION
: 두 집합(쿼리문)의 결과를 하나로 합하여 출력 (중복 값 제거하고 정렬) 통합 검색 시 사용
UNION ALL
: 두 집합의 결과를 하나로 합하여 출력 (중복 값 제거 안하고 모두 출력, 정렬X)
INTERSECT
: 두 집합의 교집합 결과를 정렬하여 출력 (중복 값 제거 ; 두 집합 or 데이터 내 중복 값)
MINUS
: 두 집합의 차집합 결과를 정렬하여 출력 (큰 집합에서 작은 집합을 빼야하므로 순서 중요)
UNION / UNION ALL 사용 시 주의!
두 집합의 SELECT 절에 오는 컬럼의 데이터 타입이 같아야 하고, 컬럼의 개수가 같아야 함
사용 :
우선 테이블별로 조회해서 개수를 확인 후, 테이블을 합한 결과를 확인 해보자
SELECT ID, AGE FROM MEMBER;
-- 43개
SELECT WRITER_ID, HIT FROM NOTICE;
-- 64개
SELECT ID, AGE FROM MEMBER
UNION
SELECT WRITER_ID NAME, HIT FROM NOTICE;
↓
92개
중복된 데이터 제거, 레코드가 합쳐짐
SELECT ID, AGE FROM MEMBER
UNION ALL
SELECT WRITER_ID NAME, HIT FROM NOTICE;
↓
107개
중복된 데이터까지 모두 보여짐
SELECT ID, AGE FROM MEMBER
INTERSECT
SELECT WRITER_ID NAME, HIT FROM NOTICE;
↓
교집합 결과 출력
SELECT ID, AGE FROM MEMBER
MINUS
SELECT WRITER_ID NAME, HIT FROM NOTICE;
↓
차집합 결과 출력
반응형
'Web programming > SQL & DB' 카테고리의 다른 글
JOIN (0) | 2020.04.17 |
---|---|
SQL 페이징 (0) | 2020.04.16 |
DISTINCT 절과 GROUP BY 절의 차이 (0) | 2020.04.16 |
ROWNUM / OUDER BY / 순위를 반환하는 함수 ROW_NUMBER, RANK, DENSE_RANK (0) | 2020.04.13 |
서브쿼리와 서브쿼리의 중첩 / 쿼리문 작성 및 실행 순서 (0) | 2020.04.13 |