본문으로 바로가기

   

 

UNION

- 합집합과 같은 개념

- SELECT 절에 나열된 모든 컬럼에 대해 두 테이블에 있는 내역 조회

- DISTINCT 역할 : 한 테이블 기준 동일한 데이터는 한 번만 조회됨

- SELECT 리스트의 컬럼의 개수, 순서, 타입이 같아야 함

 

 

UNION ALL

- 합집합과 같은 개념

- SELECT 절에 나열된 모든 컬럼에 대해 두 테이블에 있는 내역 조회

- SELECT 리스트의 컬럼의 개수, 순서, 타입이 같아야 함

- UNION과 다른 점은 한 테이블에 있는 동일 데이터가 모두 조회됨

SELECT col1, col2, col3
FROM table1
WHERE ...
UNION[UNION ALL]
SELECT col1, col2, col3
FROM table2
WHERE ...

 

 

합집합과 UNION

 

 

예제를 통하여 UNION을 사용해 보도록 하겠습니다.

아래 쿼리는 EMP 테이블의 EMPNO, ENAME과 DEPT 테이블의 DEPTNO, DNAME을 같이 조회하는 예제입니다.

 

각각 조회되는 쿼리들이 UNION을 통해 한 번에 조회된 것을 확인하실 수 있습니다.

 


SET 연산자

- 독립적인 여러 개의 쿼리를 하나로 묶는 역할

- 최종 결과는 하나의 쿼리가 수행된 것과 같음

- 수학의 집합과 같은 개념

- UNION, UNION ALL, INTERSECT, MINUS

 

 

SET 연산자 제한 사항

- SET 연산자로 묶여지는 SELECT 절에서 BLOB, CLOB, BFILE, VARRAY, 중첩 테이블 타입인 컬럼 사용 불가

- UNION, INTERSECT, MINUS를 사용할 경우, SELECT 절에서 LONG 타입 컬럼 사용 불가

- FOR UPDATE 절 사용 불가

- ORDER BY 절은 맨 마지막에 한 번만 사용 가능. 서브쿼리 내에서는 ORDER BY절 사용 불가

- SET 연산자로 연결될 경우, 쿼리 결과는 가장 상위 SELECT 문의 컬럼을 기준으로 데이터 타입, 컬럼명이 맞춰짐