SQL - ⑦ 서브쿼리 (DMCCONET)

hoegon kim·2022년 10월 24일
0

SQL-PLUS

목록 보기
8/17
post-thumbnail

서브쿼리

학습내용

  • 1.서브쿼리
  • 2.단일 행 서브 쿼리
  • 3.다중 행 서브 쿼리

학습목표

  • 서브 쿼리를 이용해서 원하는 데이터를 검색할 수 있습니다.
  • 단일 행 서브쿼리와 다중 행 서브 쿼리의 차이점을 알 수 있습니다.

1.서브쿼리

서브쿼리의 기본 개념

  • 서브쿼리를 이용해서 원하는 데이터를 검색 할 수 있습니다.
  • 단일 행 서브쿼리와 다중 행 서브 쿼리의 차이점을 알 수 있습니다.

1-1 서브쿼리 구조

  • SCOTT의 부서명을 알아내기 위한 서브 쿼리문 부터 살펴봅시다.

1-2 서브쿼리 형식

  • 다음은 서브 쿼리의 형식 입니다.

2.단일행 서브쿼리 와 다중행 서브쿼리

  • 1.단일 행 서브 쿼리
    내부 쿼리문의 결과로 얻어지는 로우가 한 개
    단일 행 비교 연산자(>, =, >=, <, <>, <=)

  • 2.다중 행 서브 쿼리
    내부 쿼리문의 결과로 얻어지는 로우가 여러 개
    다중 행 비교 연산자(IN, ANY, SOM, ALL, EXISTS)

2-1 단일 행 서브 쿼리

  • SCOTT과 동일한 부서에서 근무하는 사원 출력하기

3.다중 행 서브 쿼리

  • 다중 행 서브 쿼리는 서브 쿼리에서 반환되는 결과가 하나 이상의 행일 때 사용하는 서브 쿼리입니다.
  • 다중 행 서브 쿼리는 반드시 다중 행 연산자(Multiple Row Operator)와 함께 사용해야 합니다.

  • 결과가 2개 이상 구해지는 쿼리문을 서브 쿼리로 기술할 경우에는 다중 행 연산자와 함께 사용해야 합니다.

  • 부서별 최소 급여를 받는 사원의 사원번호와 이름을 출력하는 쿼리문을 작성해 봅시다.

3-1 ANY 연산자

  • ANY 조건은 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 하나 이상만 일치하면 참입니다.

  • > ANY는 찾아진 값에 대해서 하나라도 크면 참이 되는 셈이 됩니다. 그러므로 찾아진 값 중에서 가장 작은 값 즉, 최소값 보다 크면 참이 됩니다.

  • 직급이 SALESMAN이 아니면서 급여가 임의의 SALESMAN 보다 낮은 사원을 출력하는 예입니다.

3-2 ALL 연산자

  • ALL 조건은 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 모든 값이 일치하면 참입니다.

  • 찾아진 값에 대해서 AND 연산을 해서 모두 참이면 참이 되는 셈이 됩니다. > ALL 은 “모든 비교값 보다 크냐”고 묻는 것이 되므로 최대값보다 더 크면 참이 됩니다.

  • 다음은 직급이 SALESMAN가 아니면서 직급이 SALESMAN인 사원보다 급여가 적은 사원을 모두 출력하는 예입니다.

0개의 댓글