개주 훈련일지/📚 코살대 교본 학습

SQL) 서브쿼리

lshfood2 2026. 1. 25. 14:33

[ 서브쿼리 ]

서브쿼리(Subquery)란 하나의 SQL문 안에

포함되어 있는 또 다른 SQL문을 말한다.

 

서브쿼리는 메인쿼리의 칼럼을 모두 사용할 수 있지만

메인쿼리는 서브쿼리의 칼럼을 사용할 수 없다.

 

메인쿼리는 자신의 칼럼을 줄 수만 있으며

반대로 서브쿼리는 자신의 칼럼을 줄 수 없다.

 

※ 서브쿼리 사용 시 주의점

소괄호 "()"로 감싸서 사용한다.

단일행 또는 복수행 비교 연산자와 함께 사용 가능하다.

단일행 비교 연산자는 서브쿼리의 결과가
반드시 1건 이하여야 한다.

복수행 비교 연산자는 서브쿼리의 결과 건수와 상관없다.
1건 혹은 여러 건도 가능하다.

서브쿼리 내에서는 ORDER BY절을 사용하지 못한다.
ORDER BY절은 전체 SQL문 내에서 오직 1개만 올 수 있기 때문에
ORDER BY절은 메인쿼리의 맨 마지막 SQL문 아래에 위치해야 한다.

[ 사용 가능한 위치 ]

다음과 같은 위치에서 사용이 가능하다.

위치 명칭
SELECT절 스칼라 서브쿼리
FROM절 인라인뷰 서브쿼리
WHERE절 서브쿼리
HAVING절 서브쿼리
INSERT문의 VALUES절 서브쿼리
UPDATE문의 SET절 서브쿼리

[ 동작 방식 ]

동작 방식에 따라 두 가지로 분류한다.

 

1) 비연관 서브쿼리는 서브쿼리가

메인쿼리의 값을 사용하지 않는 경우이며,

 

2) 연관 서브쿼리는 서브쿼리가

메인쿼리의 값을 사용하는 경우이다.

동작방식 설명
비연관 서브쿼리 메인쿼리에 값을 제공하기 위한
목적으로 주로 사용
연관 서브쿼리 메인쿼리가 먼저 수행되어 읽혀 진 데이터를
서브쿼리에서 조건이 맞는지
확인하고자 할 때 주로 사용

[ 반환 형태 ]

서브쿼리는 특정 값을 메인쿼리에 반환하게 된다.

 

이 때 1건 혹은 0건을 반환하는 서브쿼리를

단일행 서브쿼리라고 부르고

 

여러 건의 행을 반환하는 서브쿼리를

다중행 서브쿼리라고 한다.

 

또는 단일행이든 다중행이든 반환하는 칼럼의 개수가

2개 이상인 경우 다중 칼럼 서브쿼리라고 한다.

반환 형태 설명
단일행 서브쿼리 실행 결과가 항상 1건 이하인 서브쿼리를 의미
항상 비교 연산자와 함께 사용된다.
=, <, <=, >, >=, <>과 함께 사용
다중행 서브쿼리 실행 결과가 여러 건인 서브쿼리를 의미
다중행 비교 연산자와 함께 사용된다.
IN, ALL, ANY, SOME, EXISTS와 함께 사용
다중칼럼 서브쿼리 실행 결과로 여러(다중) 칼럼을 반환
메인쿼리의 조건 절에
여러 칼럼을 동시에 비교할 수 있다.
서브쿼리와 메인쿼리의
칼럼 수와 칼럼 순서가 동일해야 한다.

 

'개주 훈련일지 > 📚 코살대 교본 학습' 카테고리의 다른 글

품질 목표  (0) 2026.01.31
설계 원리와 설계 기본 개념  (0) 2026.01.26
모델 검증  (0) 2026.01.24
제어 모델링  (0) 2026.01.24
SQL) 계층형 질의와 셀프 조인  (0) 2026.01.24