집합
-UNION : 결과값을 합집합으로 묶음 (데이터 중복은 제거된다.)
-UNIONALL : 결과값을 합집합으로 묶음 (데이터 중복은 허용한다.)
-MINUS : 결과값을 차집합으로 묶음 A-B = A (순수한 A)
-INTERSECT : 결과값을 교집합으로 묶음
부서번호가 10번과 20번인 내용 출력
-SELECT eno, ename , dno FROM emp WHERE dno = 10
UNION
SELECT eno, ename , dno FROM emp WHERE dno = 20;
집합 연산자를 이용해서 전체 emp 내용중 10번 부서번호를 제외한 나머지 내용을 출력
-SELECT eno, ename, dno FROM emp
MINUS
SELECT eno, ename, dno FROM emp WHERE dno = 10;
예시
20번, 30번 부서에 근무하고 있는 사원 중 급여(sal)가 2000 초과인 사원을 다음 두가지 방식의 SELECT문을 사용하여 사원번호, 급여, 부서번호를 출력
1)집합연산자를 사용하지 않은 방식
-SELECT empno, ename, job, sal, deptno FROM emp WHERE deptno IN(20,30) AND sal > 2000;
2)집합연산자를 사용한 방식
-SELECT EMPNO, ENAME, JOB, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 20
AND SAL > 2000
UNION
SELECT EMPNO, ENAME, JOB, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 30
AND SAL > 2000;
'Database' 카테고리의 다른 글
[Oracle] DB 문자함수, 숫자함수, 날짜함수, 변환함수 (0) | 2020.08.12 |
---|---|
[Oracle] GROUP BY절, HAVING절 (0) | 2020.08.11 |
[Oracle] SELECT문 LIKE, NOT, IS NOT NULL 연산자 (0) | 2020.08.09 |
[Oracle] SELECT문 , WHERE절, AND/OR/IN 연산자 (0) | 2020.08.08 |
[Oracle] SELECT 질의문, ORDER BY절 (0) | 2020.08.07 |