(참조) SELECT절에 사용된 Sub Query 예제
뇌를 자극하는 오라클 프로그래밍(홍형경) 392p
<1. 서브쿼리 사용 시>
select emp.first_name||' '||emp.last_name as EMP_NAMES , emp.department_id,
(select dep.department_name
from departments dep
where emp.department_id=dep.department_id) dep_name
from employees emp;
<2. 단순 조인 사용 시>
select first_name||' '||last_name as EMP_NAMES , emp.department_id, dep.department_name
from employees emp, departments dep
where emp.department_id=dep.department_id(+);
서브쿼리를 사용한 1과 2는 같은 결과를 산출하지만, 성능면에서는 OUTER JOIN을 사용하지 않아도 되는 1번 문장이 더 나을 수있다. 만약 emp.department_id 값이 null 이 아닌 컬럼이 있을 경우, 아래 쿼리처럼 단순 EQUI JOIN을 사용해도 무방하다.
<2-1. 단순 조인 사용시 - EQUI JOIN>
select first_name||' '||last_name as EMP_NAMES , emp.department_id, dep.department_name
from employees emp JOIN departments dep
on emp.department_id = dep.department_id;
결국 설계 단계에서 테이블이 어떻게 정의될지와 사용될 쿼리에 대한 계획이 있어야 불필요한 성능 저하를 막을 수 있다.
'Oracle_DB_Unix admin > 미분류' 카테고리의 다른 글
JOIN (오라클 및 ANSI 표준) -- '오라클 실습' 연습문제 풀이 겸 (0) | 2016.02.10 |
---|---|
그룹함수 (이채남 선생님 저 '오라클 실습' 참고) (0) | 2016.01.28 |
데이터 형 변환 함수 (이채남 선생님 저 '오라클 실습' 참고) (0) | 2016.01.28 |
날짜 함수 (이채남 선생님 오라클 실습 2장 중) (0) | 2016.01.27 |
데이터 형 변환이 일어나는 예 (0) | 2015.10.25 |