본문 바로가기

Study/OracleDB

25강 오라클 SQL set 연산자(1)

728x90

-- 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