코딩항해기
[DBMS/Oracle] 집합 연산자 본문
집합 연산자는 예전 where절과 연산자를 다룰 때 함께 다룬 적이 있다.
Join을 정리하며 제대로 구분 짓기 위해 다시 한 번 더 정리한다.
집합 연산자
UNION | 위 아래의 SELECT문의 결과 값을 합집합으로 묶어주며, 중복값은 제외된다. |
UNION ALL | 위 아래의 SELECT문의 결과 값을 합집합으로 묶어주며, 중복값도 전부 보여준다. |
MINUS | 위 아래의 SELECT문의 결과 값을 차집합으로 묶어주며, 상단 테이블의 결과 값 중 존재하지 않는 데이터만 하단 테이블에서 조회된다. |
INTERSECT | 위 아래의 SELECT문의 결과 값을 차집합으로 묶어 조회된다. |
컬럼(가로)으로 합쳐지는 JOIN과 달리 로우(세로)로 합쳐진다.
그 때문에 두 SELECT문의 컬럼 개수와 자료형이 순서대로 일치해야 가능하다.
상단의 컬럼명은 상단의 위치한 SELECT문을 기준으로 보여진다.
1. UNION ALL
SELECT 열1 FROM 테이블1
UNION ALL
SELECT 열1 FROM 테이블2;
2. UNION
SELECT 열1 FROM 테이블1
UNION
SELECT 열1 FROM 테이블2;
3. MINUS
SELECT 열1 FROM 테이블1
MINUS
SELECT 열1 FROM 테이블2;
4. INTERSECT
SELECT 열1 FROM 테이블1
INTERSECT
SELECT 열1 FROM 테이블2;
'DBMS > Oracle' 카테고리의 다른 글
[DBMS/Oracle] SQL 실행 순서 (조건 위치 효율성) (0) | 2024.08.21 |
---|---|
[DBMS/Oracle] VIEW (0) | 2024.08.04 |
[DBMS/Oracle] JOIN (0) | 2024.08.03 |
[DBMS/Oracle] 테이블 복사 생성하기 (0) | 2024.07.31 |
[DBMS/Oracle] 서브쿼리 (0) | 2024.07.30 |