[SQL] 서브쿼리(SubQuery)

최대 1 분 소요

서브쿼리의 정의와 특징

1. 정의

  • 하나의 SQL문에 포함된 또 다른 SQL문

2. 특징

  • 서브쿼리 사용 시 반드시 () 로 묶어야 한다.
  • 서브쿼리 내에서는 ORDER BY를 사용할 수 없다.
  • SELECT, FROM, WHERE, ORDER BY, HAVING 절에서 사용할 수 있다. (+ INSERT VALUES, UPDATE SET)
  • 메인쿼리가 실행되기 전에 서브쿼리가 실행된다.


서브쿼리의 위치에 따른 명칭

1. FROM절 서브쿼리: 인라인뷰(Inline view)

SELECT *
FROM (SELECT *
      FROM t1
      WHERE name = 'ㅎㅇ')

2. WHERE절 서브쿼리: 중첩 서브쿼리

SELECT months*salary AS earnings, COUNT(*)
FROM Employee
WHERE months*salary = (SELECT MAX(months*salary) FROM Employee)
GROUP BY months*salary

3. SELECT절 서브쿼리: 스칼라 서브쿼리

  • 다른 테이블에서 특정 값을 가져올 때 사용한다.
  • 하나의 레코드만 리턴 가능하며, 두 개 이상의 레코드는 리턴할 수 없다.
SELECT D.DEPTNO, (SELECT MIN(EMPNO) FROM EMP WHERE DEPTNO = D.DEPTNO) as EMPNO
FROM DEPT D
ORDER BY D.DEPTNO

댓글남기기