서브쿼리란?
- 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 | 서브쿼리의 결과를 만족하는 값이 존재하는지 여부를 확인하는 조건 |
'Database > DBMS' 카테고리의 다른 글
[DBMS] JDBC에서 Query 사용 (1) | 2024.02.15 |
---|---|
[DBMS] JDBC 연결방법 (0) | 2024.02.15 |
[DBMS] JDBC (0) | 2024.02.14 |