📚 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 |
댓글