서브쿼리 : 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>>
'알고리즘 > Oracle Database 11g ' 카테고리의 다른 글
[Oracle Database 11g] JOIN (0) | 2018.03.04 |
---|---|
[Oracle database 11g] CASE (0) | 2018.03.04 |
[Oracle Database 11g] DECODE (0) | 2018.03.04 |
[Oracle Database 11g] 숫자 함수 : Numeric Functions (0) | 2018.02.03 |
[Oracle Database 11g] 문자 함수 : Character Functions (0) | 2018.02.03 |