제2절_집합_연산자(SET_OPERATOR)
2012.03.18 22:27
제2절 집합 연산자(SET OPERATOR)
집한 연산자
- 두개 이상의 연관된 테이블에서 데이터를 조회하는 방법
- 여러개의 질의의 결과를 연결하여 하나로 결합
- 튜닝관점에서 실행계획을 분리하고자 할때
--UNION
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID=10
UNION
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID=20
ORDER BY LAST_NAME;
--같은 컬럼에 대한 IN연산자 대체 UNION 효과
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (10, 20);
UNION ALL
UNION ALL은 UNION과 다르게 집합내에서 중복이 생길수 있음(단순 결합)
--UNION ALL
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (10, 20)
UNION ALL
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (10, 20)
ORDER BY LAST_NAME;
--MINUS
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (10, 20)
MINUS
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID =10
ORDER BY LAST_NAME;
--NOT IN를 이용한 MINUS효과
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES A
WHERE DEPARTMENT_ID IN (10, 20)
AND EMPLOYEE_ID NOT IN
(SELECT EMPLOYEE_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 10);
--NOT IN를 이용한 MINUS효과
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES A
WHERE DEPARTMENT_ID IN (10, 20)
INTERSECT
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES A
WHERE DEPARTMENT_ID = 10;
--IN연산자를 이용한 INTERSECT효과
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES A
WHERE DEPARTMENT_ID IN (10, 20)
AND EMPLOYEE_ID IN
(SELECT EMPLOYEE_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 10);
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
38 | 제2절_트랜잭션 | 보라빛고양이 | 2012.05.04 | 8933 |
37 | 제4절_데이터베이스_IO_원리 | 운영자 | 2012.04.30 | 5977 |
36 | 제3절_데이터베이스_Call과_네트워크_부하 | 오예스 | 2012.04.30 | 5931 |
35 | 제2절_SQL_파싱_부하 | ljw | 2012.04.22 | 7069 |
34 | 제1절_데이터베이스_아키텍처 [2] | ljw | 2012.04.22 | 11536 |
33 | 제2절_인덱스_기본 | 실천하자 | 2012.04.11 | 6512 |
32 | 제1절_옵티마이저와_실행계획 | suspace | 2012.04.09 | 8933 |
31 | 제8절_절차형_SQL | 보라빛고양이 | 2012.04.01 | 6545 |
30 | 제7절_DCL(DATA_CONTROL_LANGUAGE) | 보라빛고양이 | 2012.04.01 | 7774 |
29 | 제6절_윈도우_함수(WINDOW_FUNCTION) | balto | 2012.03.30 | 7704 |
28 | 제5절_그룹_함수(GROUP_FUNCTION) | balto | 2012.03.30 | 12465 |
27 | 제4절_서브쿼리 | 오예스 | 2012.03.27 | 12492 |
26 | 제3절_계층형_질의와_셀프_조인 | 오예스 | 2012.03.27 | 8677 |
25 | 제9절_조인(JOIN) | 실천하자 | 2012.03.19 | 8500 |
24 | 제8절_ORDER_BY_절 | 실천하자 | 2012.03.19 | 6758 |
» | 제2절_집합_연산자(SET_OPERATOR) | ljw | 2012.03.18 | 5807 |
22 | 제1절_표준_조인(STANDARD_JOIN) | ljw | 2012.03.18 | 15940 |
21 | 제6절_분산_데이터베이스와_성능 | 오예스 | 2012.03.14 | 6977 |
20 | 제7절_GROUP_BY_HAVING_절 | suspace | 2012.03.11 | 11539 |
19 | 제6절_함수(FUNCTION) | suspace | 2012.03.11 | 8736 |