집합 연산자
:여러 개의 쿼리문을 하나의 쿼리문으로 만들어주는 연산자
UNION : 합집합 , INTERSECT : 교집합 , UNION ALL : 합집합 , MINUS : 차집합
-UNION : 합집합 OR (두 쿼리문을 수행한 결과값을 더해줌)
--부서코드가 D5인 사원 또는 급여가 300만원 초과인 사원들의 사번,이름,부서코드,급여 조회
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5' OR SALARY > 3000000;
200 선동일 D9 8000000
201 송종기 D9 6000000
202 노옹철 D9 3700000
204 유재식 D6 3400000
205 정중하 D6 3900000
206 박나라 D5 1800000
207 하이유 D5 2200000
208 김해술 D5 2500000
209 심봉선 D5 3500000
210 윤은해 D5 2000000
215 대북혼 D5 3760000
217 전지연 D1 3660000
--부서코드가 D5인 사원의 사번, 이름, 부서코드, 급여조회
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5';
206 박나라 D5 1800000
207 하이유 D5 2200000
208 김해술 D5 2500000
209 심봉선 D5 3500000
210 윤은해 D5 2000000
215 대북혼 D5 3760000
--급여가 300만원 초과인 사원의 사번, 이름, 부서코드, 급여 조회
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000;
200 선동일 D9 8000000
201 송종기 D9 6000000
202 노옹철 D9 3700000
204 유재식 D6 3400000
205 정중하 D6 3900000
209 심봉선 D5 3500000
215 대북혼 D5 3760000
217 전지연 D1 3660000
--UNION으로 위의 2개 퀴리문을 합치기
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5'
UNION
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000;
206 박나라 D5 1800000
207 하이유 D5 2200000
208 김해술 D5 2500000
209 심봉선 D5 3500000
210 윤은해 D5 2000000
215 대북혼 D5 3760000
200 선동일 D9 8000000
201 송종기 D9 6000000
202 노옹철 D9 3700000
204 유재식 D6 3400000
205 정중하 D6 3900000
217 전지연 D1 3660000
-INTERSECT : 교집합 AND (두 쿼리문을 수행한 결과값의 중복된 부분을 추출해줌)
-- 부서코드가 D5이고 급여가 300만원 초과인 사원의 사번, 이름, 부서코드, 급여 조회
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5' AND SALARY > 3000000;
209 심봉선 D5 3500000
215 대북혼 D5 3760000
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5';
206 박나라 D5 1800000
207 하이유 D5 2200000
208 김해술 D5 2500000
209 심봉선 D5 3500000
210 윤은해 D5 2000000
215 대북혼 D5 3760000
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000;
200 선동일 D9 8000000
201 송종기 D9 6000000
202 노옹철 D9 3700000
204 유재식 D6 3400000
205 정중하 D6 3900000
209 심봉선 D5 3500000
215 대북혼 D5 3760000
217 전지연 D1 3660000
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5'
INTERSECT
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000;
209 심봉선 D5 3500000
215 대북혼 D5 3760000
'데이터 베이스(Oracle)' 카테고리의 다른 글
JOIN (0) | 2024.07.29 |
---|---|
GROUP BY&HAVING&집합연산자4 (0) | 2024.07.25 |
GROUP BY&HAVING&집합연산자2 (0) | 2024.07.25 |
GROUP BY&HAVING&집합연산자 (1) | 2024.07.23 |
그룹 함수 (1) | 2024.07.23 |