서브쿼리는 SQL 문 안에 포함된 또 다른 SQL 문입니다. 메인(외부) 쿼리에 포함되어 있으며, 메인 쿼리의 결과에 따라 실행됩니다. 주로 데이터 검색, 필터링, 조건 확인 등의 작업에 사용됩니다.
- 서브쿼리의 종류:
- 단일 행 서브쿼리 (Single-Row Subquery): 서브쿼리가 한 번에 하나의 행만 반환합니다. 주로 비교 연산자와 함께 사용되어 단일 값을 비교하거나 조건에 따라 단일 값을 선택합니다.
SELECT column1
FROM table1
WHERE column1 = (SELECT column2 FROM table2 WHERE condition);
다중 행 서브쿼리 (Multi-Row Subquery): 서브쿼리가 여러 행을 반환할 수 있습니다. IN, ANY, ALL과 같은 비교 연산자와 함께 사용되어 다중 값을 비교하거나 조건에 따라 다중 값을 선택합니다.
SELECT column1
FROM table1
WHERE column1 IN (SELECT column2 FROM table2 WHERE condition);
다중 열 서브쿼리 (Multi-Column Subquery): 서브쿼리가 여러 열을 반환합니다. 주로 다른 테이블과의 조인이나 계산에 사용됩니다.
SELECT column1, (SELECT column2 FROM table2 WHERE condition) AS subquery_result
FROM table1;
- 서브쿼리의 사용:
- WHERE 절에서 사용: 서브쿼리를 사용하여 특정 조건을 추가하거나 부분 집합을 선택합니다.
- FROM 절에서 사용: 서브쿼리를 사용하여 임시 테이블을 만들거나 데이터를 필터링하여 새로운 결과를 생성합니다.
- SELECT 절에서 사용: 서브쿼리를 사용하여 값을 계산하거나 서브쿼리의 결과를 반환합니다.
- 조인에서 사용: 서브쿼리를 사용하여 다른 테이블과 조인하거나, 서브쿼리의 결과를 기반으로 다른 테이블과 관계를 형성할 수 있습니다.
서브쿼리를 사용하면 복잡한 데이터 요구 사항을 처리할 수 있지만, 지나치게 복잡하게 중첩되거나 사용되면 코드의 가독성이 저하되고 성능에 영향을 줄 수 있습니다. 그러므로 서브쿼리의 사용은 적절히 고려해야 합니다.
'sql' 카테고리의 다른 글
트랜잭션 (0) | 2024.03.02 |
---|---|
인덱스와 뷰 (0) | 2024.03.02 |
조인(JOIN) (0) | 2024.03.02 |
날짜 및 시간함수 : DATE0, TIMEO, TIMESTAMPO (0) | 2024.03.02 |
숫자함수 : SUMO, AVGO, COUNTO, MINO, MAXO (0) | 2024.03.02 |