본문 바로가기

sql

서브쿼리(Subquery)

서브쿼리는 SQL 문 안에 포함된 또 다른 SQL 문입니다. 메인(외부) 쿼리에 포함되어 있으며, 메인 쿼리의 결과에 따라 실행됩니다. 주로 데이터 검색, 필터링, 조건 확인 등의 작업에 사용됩니다.

  1. 서브쿼리의 종류:
    • 단일 행 서브쿼리 (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;

 

  1. 서브쿼리의 사용:
    • 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