DB/SQL

집합쿼리

lavender1122 2023. 12. 29. 12:26

집합 연산자를 사용시 집합 구성할 컬럼의 데이터 타입 동일해야함

UNION : 합집합 / 중복제거

  •  두 테이블의 결합을 나타내며, 결합 시키는 두 테이블의 중복되지 않은 값들을 반환
더보기
SELECT 	SALARY 
	,	DEPARTMENT_ID 
	,	FIRST_NAME 
FROM EMPLOYEES e 
WHERE DEPARTMENT_ID = 50
UNION 
SELECT  SALARY 
	,	NULL AS DEPARTMENT_ID
	,	FIRST_NAME 
FROM EMPLOYEES e2 
WHERE DEPARTMENT_ID = 30
;

UNION ALL : 합집합 / 중복 제거 안함

  • UNION과 같으나두 테이블 중복되는 값까지 반환
더보기
SELECT deptno FROM emp
     UNION ALL
     SELECT deptno FROM dept;

INTERSECT : 교집합

  • 두 행의 집합 중 공통된 행 반환
더보기
SELECT deptno FROM emp
     INTERSECT
     SELECT deptno FROM dept;

MINUS : 차집합

  • 첫번째 SELECT문에 의해 반환되는 행중에서 두번째 SELECT문에 의해 반환되는 행에 존재하지 않는 행들을 보여줌
더보기
SELECT deptno FROM dept
     MINUS
     SELECT deptno FROM emp;