7
오오오 SQL 오오 Scalar SubQuery 이이이 , 이이이이이 (topcredu.co.kr)

[오라클SQL기초강좌]스칼라서브쿼리(Scalar Subquery)

  • Upload
    3-2

  • View
    951

  • Download
    0

Embed Size (px)

Citation preview

오라클 SQL 기초Scalar SubQuery

이종철 , 탑크리에듀 (topcredu.co.kr)

Scalar SubQuery 란 ?• 하나의 단일값을 나타내기 위해 SELECT 구문을 SELECT LIST,

WHERE 절 , ORDER BY 절 , DML 등에 사용하는 서브쿼리를 지칭• 데이터건수가 적을 경우 조인 방식보다 유리하다 . • 유효한 수식이 사용될 수 있는 곳이라면 어디든 사용가능하며 반드시 하나의 결과만 되돌려야 한다 .

Example - 1

• 사원테이블과 부서테이블을 조인하여 사번 , 사원명 , 부서코드 , 부서명을 추출한다고 하자 . select empno, ename, emp.deptno, dname from emp, dept where emp.deptno = dept.deptno;  스칼라 서브쿼리로 변환하면• select empno, ename, deptno, (select dname from dept where

emp.deptno = dept.deptno) from emp;

Example - 2

• 부서별로 사원수를 출력하는 쿼리를 스칼라 서브쿼리를 이용해 보자 .select deptno, dname, (select nvl(count(*),0) from emp where em-p.deptno = dept.deptno) emp_cnt from dept ; DEPTNO DNAME EMP_CNT------------------------------------------------------- 10 ACCOUNTING 3 …… 40 OPERATIONS 0

Example - 3

• insert 에 스칼라 서브쿼리 사용create table emp_summary ( sum_sal number, avg_sal number, max_sal number, min_sal number );•  • 테이블이 생성되었습니다 .•  

insert into emp_summary ( sum_sal, avg_sal, max_sal, min_sal ) values ( (select sum(sal) from emp), (select avg(sal) from emp), (select max(sal) from emp), (select min(sal) from emp) );

Example - 4

• 아래처럼 order by 절에서도 사용 가능하다 . 부서이름으로 정렬select empno, ename, sal from emp e order by ( select dname from dept d where e.deptno = d.deptno);

This practice makes Expert!PL/SQL 단기속성 (1일완성 )SQL 힌트 / 튜닝 (단기 2일교육 )SQL기초과정