-- 1. SET 연산자에 관하여
-- 독립적인 여러 개의 쿼리를 하나로 묶는 역활
-- 최종 결과는 하나의 쿼리가 수행된 것과 같음
-- 수학의 집합과 같은 개념
-- UNION
-- 합집합과 같은 개념
-- SELECT 절에 나열된 모든 컬럼에 대해 두 테이블에 있는 내역 조회
-- DISTINCT 역활 -> 한 테이블 기준 동일한 데이터는 1번만 조회됨
-- SELECT 리스트의 컬럼의 개수, 순서, 타입이 같아야 함. ★
-- UNION ALL
-- UNION과 다른 점은 한 테이블에 있는 동일 데이터가 모두 조회됨.
-- [구문]
-- select col1, col2, col3...
-- from table1
-- where...
-- union 아니면 union all
-- select col1, col2, col3...
-- from table2
-- where...
-- SELECT 리스트의 컬럼의 개수, 순서, 타입이 같아야 함. ★
select ename, empno from emp
union all
select deptno, dname from dept;
-- 대응하는 식과 같은 데이터 유형이어야 합니다.
select empno, ename, job from emp
union all
select deptno, dname from dept;
-- 질의 블록은 부정확한 수의 결과 열을 가지고 있습니다.
-- INTERSECT
-- 교집합과 같은 개념(공통된 데이터만 출력)
-- select 리스트의 컬럼의 개수, 순서, 타입이 같아야 함. ★
-- [구문]
-- select col1, col2, col3...
-- from table1
-- where...
-- INTERSECT
-- select col1, col2, col3...
-- from table2
-- where...
-- MINUS
-- 차집합과 같은 개념(공통된 데이터를 뺀 나머지)
-- select 리스트의 컬럼의 개수, 순서, 타입이 같아야 함. ★
-- [구문]
-- select col1, col2, col3...
-- from table1
-- where...
-- MINUS
-- select col1, col2, col3...
-- from table2
-- where...
-- SET 연산자 제한사항
-- SET 연산자로 묶여지는 SELECT 절에서 BLOB, CLOB, BFILE, VARRAY,
-- 중첩 테이블 타입인 컬럼 사용 불가
-- UNION, INTERSET, MINUS를 사용할 경우, SELECT 절에서 LONG 타입 컬럼 사용 불가.
-- FOR UPDATE 절 사용 불가
-- ORDER BY 절은 맨 마지막에서 한 번만 사용 가능. 서브쿼리 내에서는
-- ORDER BY 절 사용 불가
-- SET 연산자로 연결될 경우, 쿼리 결과는 가장 상위 SELECT 문의 컬럼을 기준으로
-- 데이터 타입, 컬럼명이 맞춰짐.
'Study > OracleDB' 카테고리의 다른 글
27강 오라클 SQL set연산자(3) (1) | 2022.09.10 |
---|---|
26강 오라클 SQL set연산자(2) (1) | 2022.09.10 |
24강 오라클 SQL 서브 쿼리(3) (1) | 2022.09.10 |
23강 오라클 SQL 서브 쿼리(2) (1) | 2022.09.10 |
22강 오라클 SQL 서브 쿼리(1) (1) | 2022.09.10 |