알고리즘/Oracle Database 11g

[Oracle Database 11g] 서브쿼리 : Subquery

알 수 없는 사용자 2018. 3. 4. 18:47

서브쿼리 : Subquery


- 서브쿼리는 하나의 SQL문 안에서 중복되어 존재하는 SQL문을 의미한다.

- 주로 WHERE 절 안에 사용하여 알려지지 않은 조건에 대한 검색을 위해 사용한다.

- ( ) 안에 기술해야한다.



1) 사용법

 - professor 테이블에 존재하는 '전은지' 의 직책을 가져와 조건으로 사용

 - '전은지'의 직책은 '전임강사', professor 테이블에 존재하는 position이 '전임강사'인

   ROW를 반환한다.


 SQL >>
     

SELECT   name, position

FROM    professor

WHERE  position = (SELECT position

                           FROM   professor

                           WHERE  name = '전은지');


 RESULT >>




2) 활용

 (1) Subquery 안에 그룹함수 사용

  - deptno가 101인 부서의 weight 평균을 구하고 평균보다 작은 weight를 가진 ROW를 반환


  SQL >>


SELECT name, deptno, weight

FROM   student

WHERE  weight < (SELECT AVG(weight)

                 FROM   student

                 WHERE  deptno = 101)


  RESULT>>


 (2) 다중행 서브쿼리

  - college가 100에 해당하는 deptno 와 하나라도 일치하는 ROW 반환 


  SQL >>


SELECT name, grade, deptno

FROM   student 

WHERE  deptno IN (  SELECT deptno

                    FROM   department

                    WHERE  college = 100);


  RESULT>>