oracleDB_서브쿼리

song·2023년 10월 4일

oracle

목록 보기
10/10

서브쿼리

  • select, from, where 절에 사용 가능.
  • order by 에도 사용은 가능하지만 잘 쓰지 않는다.
    (데이터 구조나 양에 따라 다르지만 일반적으로 서브쿼리는 사용을 피하는 게 좋다. 코스트를 너무 많이 잡아먹음)
  • (최고 월급자 뽑기)
    select emp.ename, sal from emp
      where sal = (select max(sal) from emp);

select 절 서브쿼리 (스칼라 서브쿼리)

  • 서브쿼리 결과는 하나 또는 집계함수를 거친 단일 값으로 리턴되어야 한다.
  • 거의 안 씀.

from 절 서브쿼리 (인라인뷰 서브쿼리)

  • 서브쿼리 결과는 하나의 테이블로 리턴되어야 한다.
  • 많이 쓰이진 않는다.
  • ex) 전체 emp중에 가장 적은 연봉자 정보 출력
    select * from (select * from emp ordery by sal asc) where rownum = 1;
    where rownum = 1 -> 1줄만 가져오는 코드

★where 절 서브쿼리 (nested 서브쿼리)

  • 단일행, 복수행 다 상관없이 리턴 가능하다.
    • 단일행 : 결과값이 하나.
    • 복수행 : 2건 이상의 결과값.
  • 보통 where 절에서 서브쿼리를 많이 쓴다.
  • ex) empno가 7499인 사원의 직업과 동일한 직원들 정보 출력
    select * from emp where job=(select job from emp where empNo=7499);
profile
계속 나아가기

0개의 댓글