Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
Oracle 21/12/28 본문
728x90
실행 순서
SELECT------------5
FROM-------------1
WHERE-----------2
GROUP-----------3
HAVING----------4
ORDER BY--------6
실습 예제
더보기
18. 회사 전체의 최대 급여, 최소 급여, 급여 총 합 및 평균 급여를 출력
19. 각 직업별, 최대 급여, 최소 급여, 급여 총 합 및 평균 급여를 출력
최대 급여는 MAX, 최소 급여는 MIN, 급여 총합은 SUM 및 평균 급여는 AVG로 출력, 직업을 오름차순 정렬
20. 동일한 직업을 가진 사원들의 총 수를 출력
21. 매니저로 근무하는 사원들의 총 수를 출력
**중복제거 DISTINCT**
22. 사내의 최대 급여 및 최소 급여의 차이를 출력
23. 매니저의 사번 및 그 매니저 밑 사원들 중 최소 급여를 받는 사원의 급여를 출력
-매니저가 없는 사람들은 제외
-최소 급여가 5000 미만인 경우는 제외
-급여 기준 역순으로 조회
24. 부서 명, 부서위치 ID, 각 부서 별 사원 총 수, 각 부서 별 평균 급여를 출력 / 부서위치를 오름차순으로 출력
EX) Abel이라는 사원이 받는 급여보다 더 많은 급여를 받는 사원의 이름과 급여를 출력
=> 1. Abel 급여 검색
=> 2. 결과 후 다시 검색
**서브 쿼리 사용 시 한 번에 조회 가능**
서브 쿼리
=> 특정 값을 모르고 있을 때 사용
-서브 쿼리가 먼저 실행되고 메인 쿼리가 실행된다
-SELECT, FROM, WHERE, HAVING, ORDER BY절에 사용 가능(GROUP BY 사용 불가)
-WHERE과 HAVING 절에서는 값의 역할을 대체한다
-서브 쿼리 개수제한은 없다
서브 쿼리 작성 시
1. 뭐를 모르는지 찾는다! (Abel의 급여)
2. 모르는 걸 서브 쿼리를 통해 찾는다!
(모르는 값을 서브 쿼리의 SELECT LIST절에 어떤 컬럼으로 찾을 것 인지 결정) (abel급여 -> 서브 쿼리에서 SALARY)
3. 누가 받을 것인지 결정 => 서브 쿼리가 넘겨준 값을 메인 쿼리의 어떤 컬럼이 받을 것인지 결정 (서브 쿼리에서 SALARY -> 메인 SALARY)
4. 서브 쿼리의 결과를 넘겨주는 연산자를 결정 (SALARY > SALARY)
*서브 쿼리의 결과와 메인 쿼리의 받는 컬럼의데이터 타입은 반드시 동일해야 함
*단, 컬럼 이름은 틀려도 상관없음
서브 쿼리 사용 지침
- 서브 쿼리를 괄호로 묶음
- 비교 조건의 오른쪽에 서브 쿼리를 넣음
-WHERE절과 HAVING절 서브 쿼리에서는 ORDER BY 절은 사용하지 않는 것이 좋다!
-단일 행 서브 쿼리에는 단일 행 연산자를 사용하고 다중 행 서브 쿼리에는 다중 행 연산자(IN과 같은 복수 연산자 사용)를 사용
다중 행 서브 쿼리
연산자 | 의미 |
IN | 목록에 있는 동일한 값 |
ANY | 값을 서브 쿼리에 의해 반환된 각 값과 비교 > ANY (최소값 보다 큰값) < ANY (최대값 보다 작은값) |
ALL | 값을 서브쿼리에 의해 반환된 모든 값과 비교 > ALL (모두중 최대값 보다 큰값) < ALL (모두중 최솟값 보다 작은값) |
실습 예제
25. Zlotkey와 동일한 부서에 근무하는 다른 모든 사원들의 사번 및 고용 날짜를 출력
26. 회사 전체 평균 급여보다 더 급여를 많이 받는 사원들의 사번 및 이름을 출력
27. 이름에 u가 포함되는 사원들과 동일 부서에 근무하는 사원들의 사번 및 이름을 출력
28. 시애틀에 근무하는 사람 중 커미션을 받지 않는 모든 사람들의 이름, 부서 명, 지역 ID를 출력
더보기**테이블 조인은 적게 쓰는 게 좋다**
728x90
'Oracle' 카테고리의 다른 글
Oracle 21/12/30 (0) | 2022.01.12 |
---|---|
Oracle 12/12/29 (0) | 2022.01.12 |
Oracle 21/12/27 (0) | 2022.01.12 |
Oracle 21/12/24 (0) | 2022.01.12 |
Oracle 21/12/23 (0) | 2022.01.12 |
Comments