[sql] 중첩 쿼리를 사용하여 데이터베이스 테이블 조작하기

중첩 쿼리는 하나의 쿼리 안에 또 다른 쿼리를 포함하는 방법을 말합니다. 이를 활용하면 한 번의 쿼리 실행으로 복잡한 조건을 가진 데이터를 처리할 수 있습니다.

중첩 쿼리 기본 구조

SELECT * FROM 테이블명 WHERE 조건 IN (SELECT * FROM 또다른테이블 WHERE 조건);

위의 예시에서 SELECT * FROM 또다른테이블 WHERE 조건 부분이 중첩 쿼리에 해당합니다. 주 쿼리에서는 중첩 쿼리의 결과를 활용하여 작업을 수행합니다.

중첩 쿼리 활용 예시

가령, 주문 테이블과 고객 테이블이 있다고 가정해 봅시다. 주문 테이블에서 특정 고객이 한 주문한 내역을 조회하고 싶을 때, 중첩 쿼리를 사용할 수 있습니다.

SELECT * 
FROM 주문 
WHERE 고객ID IN (SELECT 고객ID FROM 고객 WHERE 이름 = '홍길동');

위의 예시에서는 고객 테이블에서 이름이 ‘홍길동’인 고객의 ID를 조회한 후, 해당 ID로 주문 테이블을 다시 조회하는 방식으로 원하는 결과를 얻을 수 있습니다.

중첩 쿼리를 사용하면 하나의 쿼리만으로 여러 테이블 간의 조작을 수행할 수 있어 효율적이며 간결한 코드를 작성할 수 있습니다.

마무리

중첩 쿼리를 사용하면 데이터베이스 테이블을 보다 효과적으로 다룰 수 있습니다. 하지만 중첩 쿼리가 고성능 쿼리가 아니기 때문에 적절하게 활용해야 합니다. 어떤 상황에서 중첩 쿼리를 사용할지에 대해 신중히 판단한 후 적절히 활용하는 것이 중요합니다.

SQL 중첩 쿼리 문법 참조