SQL 서브쿼리문

2020. 5. 11. 17:44·Programming/SQL
728x90

서브쿼리문의 종류

 

1. 단일행 서브쿼리 : 서브쿼리에서 메인쿼리로 하나의 값이 리턴되는 문장

        연산자 : =, !=, <>, ^=, <, >, >=, <=

2. 다중행 서브쿼리 : 서브쿼리에서 메인쿼리로 여러 개의 값이 리턴되는 문장

       연산자 : in, not in, >all, <all, >any, <any

3. 다중 컬럼 서브쿼리 : 서브쿼리에서 메인쿼리로 여려 개의 칼럼 값이 리턴되는 문장

      연산자 : in, not in


1. 단일행 서브쿼리 - 서브쿼리에서 메인쿼리로 하나의 값이 리턴되는 문장

=, !=, <>, ^=, <, >, >=, <= 의 연산자를 이용해서 비교한다.

 

예제) JONES의 월급보다 더 많은 월급을 받는 사원들의 이름과 월급을 출력하시오

select ename, sal
from emp
where sal> (select sal
                from emp
                where ename = 'JONES');

2. 다중행 서브쿼리 - 서브쿼리에서 메인쿼리로 여러 개의 값이 리턴되는 문장

연산자 

in : 일치하는 값을 찾음

not in : 일치하지 않는 값을 찾음

>all : 최대값 반환

<any : 최대값 반환

<all : 최소값 반환

>any : 최소값 반환

 

예제) 관리자인 사원들의 이름을 출력하시오( 자기 밑에 직속 부하가 한 명이라도 있는 사원들)

select ename
from emp
where empno in (select mgr from emp);

3. 다중 컬럼 서브쿼리 (multiple column subquery)

예제) 30번이 부서번호인 사원들과 월급도 같고 커미션도 같은 사원들의 이름, 월급, 커미션, 부서 번호를 출력하시오

select ename, sal, comm, deptno
from emp
where sal in (select sal 
                from emp
                where deptno = 30)
  and comm in (select comm
                from emp
                where deptno = 30);

두개의 값이 리턴되고 있다.

 

'Programming/SQL' 카테고리의 다른 글
  • SQL 집합연산자
  • SQL 조인 - 1999 ansi join
  • SQL 조인 - 오라클 조인
  • SQL 데이터 분석 함수
해치
해치
뭐라도 하자
  • 해치
    hi there
    해치
  • 글쓰기 관리자
  • 전체
    오늘
    어제
    • ALL (66)
      • Programming (62)
        • Python (14)
        • Linux (0)
        • SQL (13)
        • 알고리즘 (35)
      • Framework (3)
        • Docker (2)
        • Django (1)
      • AWS (0)
      • Dashboard (1)
  • 블로그 메뉴

    • 링크

    • 인기 글

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    해치
    SQL 서브쿼리문
    상단으로

    티스토리툴바