본문 바로가기
SQL

[SQL] 서브쿼리 기본 개념

by 장찐 2023. 2. 6.

📚 SQL 서브쿼리 정리 

 

📌 서브쿼리 : 한 쿼리 내에 포함된 또 하나의 쿼리 

•  GROUP BY 절을 제외하고 모든 부분에 사용 가능 

•  서브쿼리는 반드시 괄호 안에 포함되어야 함 

 

✅ SELECT 절의 서브쿼리 

SELECT [컬럼], (SELECT [컬럼] FROM [테이블] WHERE 조건) 
FROM [테이블]
WHERE 조건;

• = 스칼라 서브쿼리

• SELECT 절의 서브쿼리는 결과가 반드시 하나의 값이어야 함 

 

 

✅ FROM 절의 서브쿼리 

SELECT [컬럼]
FROM (SELECT [컬럼] FROM [테이블] WHERE [조건]) AS [별명] 
WHERE 조건;

• =인라인 뷰 서브쿼리  

• FROM 절의 서브쿼리는 결과가 반드시 하나의 테이블이어야 함 

• 서브쿼리로 만들 테이블은 alias가 필수 

 

 

✅ WHERE 절의 서브쿼리 

SELECT [컬럼]
FROM [테이블]
WHERE [컬럼][연산자](SELECT [컬럼] FROM [테이블] WHERE 조건);

• =중첩 서브쿼리

• WHERE 절의 서브쿼리는 결과가 반드시 하나의 컬럼이어야 함. 단, EXISTS 제외 

→ 하나의 컬럼에는 여러 개의 값 존재할수도

• 일반적으로 WHERE [컬럼][연산자][서브쿼리] 형식으로 사용함 

 

 

📌비교 연산자

• 서브쿼리에서 비교 연산자만 사용하는 경우, 서브쿼리의 결과 값이 반드시 하나의 값이어야 한다. 

📌주요 연산자

• 주요 연산자 사용 시, 서브쿼리의 결과는 하나의 컬럼이어야 함 

• EXISTS는 단독으로 사용 가능 & 결과값이 여러 컬럼이어도 가능함. 

 

• ALL 연산자 사용 시 유의점 

-<(작다)와 사용 : 서브쿼리를 통해 도출되는 컬럼 값 중에서 가장 작은 값보다 비교하는 값이 작은 지 확인 

->(크다)와 사용 : 서브쿼리를 통해 도출되는 컬럼 값 중에서 가장 큰 값보다 비교하는 값이 큰 지 확인 

 

• ANY 연산자 사용 시 유의점 

-<(작다)와 사용 : 서브쿼리를 통해 도출되는 컬럼 값 중에서 가장 큰 값보다 비교하는 값이 작은 지 확인

  ex) 서브쿼리를 통해 도출된 컬럼이 (10, 50)이면 50보다 작은지를 비교함 

 

->(크다)와 사용 : 서브쿼리를 통해 도출되는 컬럼 값 중에서 가장 큰 값보다 비교하는 값이 큰 지 확인 

 ex) 서브쿼리를 통해 도출된 컬럼이 (10, 50)이면 50보다 작은지를 비교함 

 

 

• EXISTS 연산자 

- 값이 있으면 TRUE 없으면 FALSE 반환함 

- 예시) 

 


📚 Reference  

• 패스트캠퍼스 - 가장 쉽게 시작하는 데이터 분석, SQL 유치원

'SQL' 카테고리의 다른 글

[SQL] CASE WHEN / CREATE FUNCTION  (0) 2023.05.09
[SQL] GROUP BY  (0) 2023.03.08
[SQL] 기본함수, ORDER BY  (1) 2023.03.05
[SQL] 데이터베이스 다루기  (0) 2023.02.28

댓글