메뉴 건너뛰기

bysql.net

제2절_집합_연산자(SET_OPERATOR)

2012.03.19 07:27

ljw 조회 수:5800

제2절 집합 연산자(SET OPERATOR)



집한 연산자

  1. 두개 이상의 연관된 테이블에서 데이터를 조회하는 방법
  2. 여러개의 질의의 결과를 연결하여 하나로 결합
  3. 튜닝관점에서 실행계획을 분리하고자 할때

SQL_204.jpg
SQL_205.jpg

--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;

이미지 17.png

--같은 컬럼에 대한 IN연산자 대체 UNION 효과
SELECT DEPARTMENT_ID, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
  FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (10, 20);
이미지 19.png


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;
이미지 20.png


--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;
이미지 21.png

--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);
이미지 22.png


--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;
이미지 24.png


--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);
이미지 25.png


번호 제목 글쓴이 날짜 조회 수
58 Front Page file 운영자 2012.02.21 186700
57 Week1_이진우 [5] ljw 2012.07.16 46280
56 제1절_성능_데이터_모델링의_개요 file ljw 2012.03.04 44546
55 제4절_고급_조인_기법 suspace 2012.06.05 31240
54 제1절_Lock balto 2012.05.05 25259
53 제1절_데이터_모델의_이해 실천하자 2012.03.04 22594
52 제5절_식별자 file ljw 2012.03.04 18958
51 제1절_표준_조인(STANDARD_JOIN) file ljw 2012.03.19 15924
50 제3절_반정규화와_성능 file ljw 2012.03.04 15292
49 제5절_WHERE_절 file 보라빛고양이 2012.03.10 14879
48 제4절_관계(Relationship) [1] 실천하자 2012.03.04 13028
47 제5절_그룹_함수(GROUP_FUNCTION) file balto 2012.03.31 12458
46 제2절_소트_튜닝 file ljw 2012.06.04 12024
45 제2절_DDL(DATA_DEFINITION_LANGUAGE) [1] file balto 2012.03.09 11722
44 제4절_서브쿼리 오예스 2012.03.27 11534
43 제7절_GROUP_BY_HAVING_절 suspace 2012.03.12 11531
42 제1절_데이터베이스_아키텍처 [2] ljw 2012.04.23 11523
41 제1절_관계형_데이터베이스_개요 balto 2012.03.09 10446
40 제2절_정규화와_성능 file ljw 2012.03.04 10394
39 제2절_인덱스_튜닝 balto 2012.05.18 9904