🌿 중급 DB
데이터베이스 서브쿼리는 어떻게 쓰나요?
쉽게 이해하기
수학 문제를 풀 때 '괄호 안을 먼저 계산하고 나중에 전체를 계산한다'는 규칙처럼, 데이터베이스도 안쪽 쿼리 결과를 먼저 구한 다음 바깥쪽 쿼리에서 사용하는 거예요.
핵심 정리
서브쿼리는 쿼리 안에 또 다른 쿼리를 넣어서 복잡한 조건을 처리하는 방법이에요.
자세히 알아보기
서브쿼리(Subquery)는 SQL 쿼리문 안에 포함된 또 다른 쿼리예요. 복잡한 조건을 처리하거나 여러 단계의 작업을 한 번에 수행할 때 유용해요.
기본적인 예시를 들어볼게요. '평균보다 비싼 상품을 찾고 싶다'면 SELECT * FROM products WHERE price > (SELECT AVG(price) FROM products) 이렇게 써요. 괄호 안의 서브쿼리가 먼저 실행돼서 평균 가격을 구하고, 그 결과를 바깥쪽 쿼리에서 사용해요.
서브쿼리는 위치에 따라 종류가 다양해요. WHERE 절에 쓰면 조건으로 사용하고, FROM 절에 쓰면 임시 테이블처럼 동작해요. SELECT 절에 쓰면 계산된 컬럼처럼 결과에 포함돼요. IN, EXISTS, ANY 같은 키워드와 함께 쓰면 더 복잡한 조건을 표현할 수 있어요.
실무에서는 다른 테이블의 정보를 참조해야 할 때 서브쿼리를 많이 써요. 예를 들어 '가장 많이 주문한 고객의 주문 목록'을 구하려면 서브쿼리로 최다 주문 고객을 먼저 찾고, 그 고객의 주문을 조회하는 식이에요. 다만 서브쿼리가 복잡해지면 성능이 떨어질 수 있어서, JOIN으로 대체할 수 있는지 검토하는 것도 중요해요.