제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
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 58 | Week1_박우창 [1] | balto | 2012.07.17 | 17178 |
| 57 | Week1_이주영 | suspace | 2012.07.17 | 7949 |
| 56 | Week1_승대수 | 보라빛고양이 | 2012.07.16 | 5961 |
| 55 | Week1_이진우 [5] | ljw | 2012.07.16 | 49379 |
| 54 | Week1_위충환 [1] | 실천하자 | 2012.07.16 | 12701 |
| 53 | 문제작성 | 실천하자 | 2012.07.16 | 8726 |
| 52 | 제5절_배치_프로그램_튜닝 | 보라빛고양이 | 2012.07.04 | 10456 |
| 51 | 제4절_파티션_활용 | 오예스 | 2012.06.25 | 8697 |
| 50 | 제3절_DML_튜닝 | balto | 2012.06.13 | 12564 |
| 49 | 제1절_고급_SQL_활용 | 실천하자 | 2012.06.11 | 9382 |
| 48 | 제1절 고급 SQL 활용 | 실천하자 | 2012.06.11 | 11859 |
| 47 | 제4절_고급_조인_기법 | suspace | 2012.06.04 | 34281 |
| 46 |
제2절_소트_튜닝
| ljw | 2012.06.04 | 14945 |
| 45 | 제3절 조인 기본 원리 | 보라빛고양이 | 2012.05.29 | 10485 |
| 44 | 제1절_인덱스_기본_원리 | 오예스 | 2012.05.22 | 11033 |
| 43 | 제2절_인덱스_튜닝 | balto | 2012.05.18 | 13372 |
| 42 | 제2절_쿼리변환 | ljw | 2012.05.13 | 8531 |
| 41 | 제1절_옵티마이저 | 실천하자 | 2012.05.11 | 10230 |
| 40 | 제3절_동시성_제어 | 운영자 | 2012.05.07 | 9545 |
| 39 | 제1절_Lock | balto | 2012.05.04 | 28732 |