Database/DBMS
[DBMS] 서브 쿼리
오류나면꽥꽥
2024. 2. 16. 14:32
서브쿼리란?
- Sub Query는 SQL 문 내부에 포함된 중첩된 쿼리
- 주로 외부 쿼리의 결과에 따라 내부 쿼리를 실행하고 결과를 필터링하는데 사용
- 서브쿼리는 특정 조건을 만족시키거나 특정 값을 계산하기 위해 사용
📌 서브쿼리 사용 시 주의사항
- 서브쿼리를 괄호로 감싸서 사용
- 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능
- 서브쿼리에서는 ORDER BY 를 사용 불가능
서브쿼리 사용 가능한 곳
✅ 1. SELECT 절
- 하나의 열처럼 사용
- SELECT 절의 서브쿼리는 결과가 반드시 하나의 값
SELECT [컬럼], (SELECT [컬럼] FROM [테이블] WHERE 조건)
FROM [테이블]
WHERE 조건;
✅ 2. FROM 절
- 하나의 테이블처럼 사용
- FROM 절의 서브쿼리는 결과가 반드시 하나의 테이블
- 테이블 처럼 사용되므로, 열 이름과 테이블명을 명시
SELECT [컬럼]
FROM (SELECT [컬럼] FROM [테이블] WHERE [조건]) AS [별명]
WHERE 조건;
✅ 3. WHERE 절
- 서브쿼리의 결과가 2건 이상 반환될 수 있다면, 반드시 다중 행 비교 연산자(IN, ALL, ANY, SOME)와 함께 사용
SELECT [컬럼]
FROM [테이블]
WHERE [컬럼][연산자](SELECT [컬럼] FROM [테이블] WHERE 조건);
| 다중 행 연산자 | |
| IN | 서브쿼리의 결과에 존재하는 임의의 값과 동일한 조건 |
| ALL | 서브쿼리의 결과에 존재하는 모든 값을 만족하는 조건 |
| ANY | 서브쿼리의 결과에 존재하는 어느 하나의 값이라도 만족하는 조건 |
| EXISTS | 서브쿼리의 결과를 만족하는 값이 존재하는지 여부를 확인하는 조건 |