티스토리 뷰

DB/SQL

[SQL요점정리#8] SET연산자

douStory 2021. 8. 19. 15:49
728x90

SET(집합) 연산자

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

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

 

  • UNION : 중복을 제거한 합집합
SELECT 컬럼
FROM 테이블
WHERE..
UNION
SELECT컬럼
FROM 테이블
WHERE...;

 이런식으로 쿼리와 쿼리 사이에 사용한다.

  • UNION ALL : 두 SELECT의 결과의 중복된 결과 포함한 합집합
  • MINUS : 차두 SELECT의 결과의 차집합, 먼저 (작성한 쿼리) - (나중에 작성한 쿼리)
  • INTERSECT : 두 SELECT의 결과의 교집합

SET연산자의 NULL

Oracle 8i까지는  NULL과 숫자형, 날짜형 컬럼을 SET연산자에서 함게 사용 불가

Oracle 9i부터 사용가능

 

SET연산자 제한사항

  • SET연산자로 묶여지는 SELECT 절에서 BLOB, CLOB, VARRY, 중첩 테이블 타입인 컬럼 사용불가
  • UNION, INTERSET, MINUS를 사용할 경우, SELECT 절에서 LONG 타입 컬럼 사용 불가
  • FOR UPDATE 사용 불가
  • 서브쿼리 내에서는 ORDER BY 절 사용 불가
  • 쿼리 결과는 가장 상위 SELECT 문의 컬럼의 데이터 타입, 컬럼명 으로 맞춰짐

'DB > SQL' 카테고리의 다른 글

CSS박스모델  (0) 2021.08.30
[SQL요점정리#9]오라클 주요함수(INITCAP, UPPER, LOWER)  (0) 2021.08.24
[SQL요점정리#7] WHERE 조건과 연산자  (0) 2021.08.19
[SQL실습예제#1]  (0) 2021.08.19
[SQL요점정리#6] 데이터 조회, SELECT  (0) 2021.08.19
댓글