Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Seongho Jang

서브쿼리 본문

SQL

서브쿼리

seonghojang 2024. 1. 18. 10:32

 

서브쿼리: 하나의 쿼리 내에 포함된 또 다른 쿼리

                서브쿼리는 쿼리 간의 hierarchy 분류를 위해 반드시 ( ) 로 묶어주어야 한다.

                서브쿼리가 외부 쿼리(=메인 쿼리)보다 먼저 실행되며,

                외부 쿼리의 컬럼명을 서브쿼리에 사용이 가능하지만, 서브쿼리의 컬럼명은 외부 쿼리에서 사용이 불가능하다.

 

 

서브쿼리의 분류

서브쿼리는 쿼리 내의 위치에 따라,

SELECT절에 위치스칼라 서브쿼리,

FROM절에 위치인라인 뷰,

WHERE절에 위치중첩 서브쿼리로 분류된다. 

 

1) 스칼라 서브쿼리

    SELECT 문에서 사용되며, 하나의 결과값만을 리턴하기 때문에 스칼라 서브쿼리라는 이름이 붙었다.

SELECT D.DEPTNO,
      (SELECT MIN(EMPNO) FROM EMP WHERE DEPTNO = D.DEPTNO) as EMPNO 
      
FROM DEPT D 

ORDER BY D.DEPTNO

 

2) 인라인 뷰

    FROM 절에 위치한 서브쿼리로, 외부 쿼리에서 참조할 테이블을 생성한다.

    인라인 뷰의 경우 반드시 alias를 지정해주어야 한다.

SELECT EX1.name,EX1.salary
FROM (
  SELECT *
  FROM employee AS Ii
  WHERE Ii.office_worker='사원'
) EX1;

 

3) 중첩 서브쿼리

    WHERE 절에 위치한 서브쿼리로, 비교 조건을 설정할 수 있다.

    스칼라 서브쿼리와는 달리 다중행 서브쿼리로,

    서브쿼리 내에 IN, ALL, ANY 등의 비교 연산자가 사용 가능함

select name, height 
from userTbl
where height = any(select height from userTbl where addr in ('경남')​);
select * 
from city
where population > all( select population from city where district = 'New York' );

 

 

 

 

 

[MYSQL] 📚 서브쿼리 개념 & 문법 💯 정리

서브쿼리(Subquery) 서브쿼리(subquery)란 다른 쿼리 내부에 포함되어 있는 SELETE 문을 의미한다. 서브쿼리를 포함하고 있는 쿼리를 외부쿼리(outer query)라고 부르며, 서브쿼리는 내부쿼리(inner query)라

inpa.tistory.com