HOME
home
About
home

IN 절

이번 장에서는 데이터 검색을 간소화하고 복잡한 쿼리를 단순화하는 데 필수적인 도구인 IN 절의 강력한 기능에 대해 알아봅니다. IN 절은 미리 정의된 값 목록에 기반하여 데이터를 필터링할 수 있게 해주는 SQL의 기본 구성 요소입니다.
IN 절이란?
고객과 그들의 주문에 대한 정보가 포함된 데이터베이스가 있다고 상상해보세요. 몇몇 고객이 한 주문만을 검색하고자 할 때, 각 고객에 대해 여러 WHERE 조건을 수동으로 지정하는 것은 번거로울 수 있습니다. 이때 IN 절이 도움이 됩니다. IN 절을 사용하면 쿼리 내에 값 목록을 지정할 수 있으며, 데이터베이스는 그 값들 중 하나와 일치하는 결과를 반환합니다. 이는 같은 조건을 여러 번 반복하지 않고도 데이터를 필터링하는 간결한 방법입니다.
구문과 사용법
IN 절의 구문은 간단합니다:
SELECT column1, column2, … FROM table_name WHERE column_name IN (value1, value2, …);
column_name은 필터하고자 하는 열을, (value1, value2, …)는 비교 대상이 되는 값 목록을 나타냅니다. 데이터베이스는 주어진 열에서 지정된 값들 중 하나를 포함하는 행을 검색합니다.
개념을 명확히 하는 예제
예를 들어, 온라인 서점의 데이터베이스를 관리하고 특정 세트에 속하는 장르의 책에 대한 정보를 검색하고자 한다고 가정해봅시다. 여러 OR 조건을 작성하는 대신, IN 절이 작업을 단순화합니다:
SELECT title, author, genre FROM books WHERE genre IN ('Mystery', 'Thriller', 'Suspense');
이 쿼리는 'Mystery', 'Thriller', 'Suspense' 장르에 속하는 모든 책을 검색합니다.
IN과 서브쿼리 사용하기
IN 절의 다재다능함은 단순한 값 목록을 넘어섭니다. 동적으로 비교할 값 목록을 생성하기 위해 서브쿼리를 사용할 수 있습니다. 예를 들어, 특정 금액을 초과하는 주문을 한 고객을 찾고자 한다면 서브쿼리를 사용할 수 있습니다:
SELECT first_name, last_name FROM customers WHERE customer_id IN (SELECT customer_id FROM orders WHERE order_total > 100);
여기서 서브쿼리는 주문 총액이 100보다 큰 주문의 customer_id 값을 검색하고, 외부 쿼리는 서브쿼리의 결과를 바탕으로 고객 이름을 검색합니다.
축하합니다! IN 절의 잠재력을 활용하셨습니다. 이 장에서는 IN 절의 구문, 사용법 및 기능을 설명하는 예제를 다뤘습니다. 고객 데이터, 책 장