티스토리 뷰
서브쿼리 : 쿼리 안의 쿼리
- 조회하려는 대상을 알지 못할 때
- 조회하려는 대상이 너무 많을 때
- 조회하려는 대상이 유동적일 때 사용한다.
SELECT [COLUMN], [SUB QUERY]
FROM [TABLE]
WHERE [COLUMN OPER SUBQUERY]
WHERE 안에 서브쿼리를 만드는 실습들
실습1 - SALARY가 최소인 사원을 조회하고 싶을 때
1
2
3
4
5
6
7 |
SELECT *
FROM EMPLOYEES
WHERE SALARY = (
SELECT MIN(SALARY)
FROM EMPLOYEES
)
; |
cs |
결과가 하나일때는 WHERE 절에서 = 를 쓰지만, 여러 개의 결과를 얻고 싶을 땐 IN을 써서 조건을 만든다.
실습2 - 평균 연봉의 +- 500인 사원들을 조회한다.
1
2
3
4
5
6
7
8
9
10
11 |
SELECT *
FROM EMPLOYEES
WHERE SALARY > (
SELECT AVG(SALARY) - 500
FROM EMPLOYEES
)
AND SALARY < (
SELECT AVG(SALARY) + 500
FROM EMPLOYEES
)
; |
cs |
실습3 - 회사 전체 평균 연봉 보다 더 버는 사원들 중 LAST_NAME 에 u 가 있는 사원들이
근무하는 부서에서 근무하는 사원들의 사번, LAST_NAME 및 연봉을 조회한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
SELECT EMPLOYEE_ID
, LAST_NAME
, SALARY
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN ( -- 결과가 여러개 이므로 IN을 사용한다.
SELECT DEPARTMENT_ID
FROM EMPLOYEES
WHERE LAST_NAME LIKE '%u%'
AND SALARY > (
SELECT AVG(SALARY)
FROM EMPLOYEES
)
)
; |
cs |
서브쿼리 안의 서브쿼리
SELECT절 안에서 서브쿼리 만드는 경우
그 서브쿼리의 결과가 하나이어야 한다는 제약조건이 존재한다.
실습1
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
SELECT DEPARTMENT_ID
, LAST_NAME
, (
SELECT SUM(SALARY)
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 40 -- 이부분의 결과가 하나여야한다.
)
FROM EMPLOYEES
WHERE LAST_NAME LIKE '%u%'
AND SALARY > (
SELECT AVG(SALARY)
FROM EMPLOYEES
)
; |
cs |
'Database > Oracle' 카테고리의 다른 글
[Oracle] 테이블 조인 (0) | 2016.02.17 |
---|---|
[Oracle] 테이블(Table) 설계 (0) | 2016.02.17 |
[Oracle] IS NULL, IS NOT NULL, DISTINCT, GROUP BY, HAVING, NVL (0) | 2016.02.16 |
[Oracle] SELECT, ORDER BY, WHERE, IN, NOT, LIKE (0) | 2016.02.15 |
[Oracle] Oracle Database 다운/설치 (0) | 2016.02.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 예외처리
- algorithm
- REDIRECT
- Baekjoon Online Judege
- 안드로이드 비콘
- RequestMapping
- onBackPressed
- onPostExecute
- list
- indexOf
- 안드로이드 스튜디오
- table
- AlertDialog.Builder
- mybatis
- 자바
- restfb
- java
- sort
- servlet
- Spring
- maven
- controller
- INSERT
- DP
- BFS
- order by
- boj
- 이클립스
- jsp
- DFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함