SQL IN 연산자 사용 방법

1. 핵심 원리

IN 연산자는 SQL에서 특정 열의 값이 지정된 리스트 내에 있는지 확인하는 데 사용됩니다. 이는 하나의 열이 여러 가지 값을 가질 수 있을 때, 각 값을 하나씩 비교하지 않고 한 번에 조회할 수 있도록 해주는 매우 효율적인 방법입니다.

2. 실무에서 쓰이는 이유

실무에서는 데이터베이스 쿼리의 간결성과 성능 향상이 중요합니다. IN 연산자를 사용하면 여러 조건을 하나씩 나열하지 않아도 되므로 코드가 간결해지고, 데이터베이스 엔진이 최적화된 방식으로 쿼리를 처리할 수 있습니다.

3. 실무에서 구체적으로 사용되는 상황

IN 연산자는 다음과 같은 상황에서 자주 사용됩니다:

  • 고객 세분화: 특정 고객 그룹을 대상으로 데이터 조회할 때.
  • 상품 카테고리 필터링: 특정 카테고리의 상품을 조회할 때.
  • 다양한 상태 조회: 여러 상태를 가진 주문 정보를 필터링할 때.

예상 상황 예측:

  • 예시 1: 특정 지역(서울, 부산, 대구)에 거주하는 고객을 조회.
  • 예시 2: 특정 직군(개발자, 디자이너, 매니저)의 직원을 조회.

4. 연습 문제

문제 1:

다음 SQL 쿼리를 작성하시오:

  • IN 연산자를 사용하여 직업이 ‘ENGINEER’, ‘DESIGNER’, ‘MANAGER’인 직원의 이름과 월급을 조회하시오.

문제 2:

직업이 ‘CLERK’가 아닌 직원의 이름과 월급을 조회하는 SQL 쿼리를 작성하시오.

5. 연습 문제 해답

해답 1:

SELECT ename, sal
FROM emp
WHERE job IN ('ENGINEER', 'DESIGNER', 'MANAGER');

해답 2:

SELECT ename, sal
FROM emp
WHERE job != 'CLERK';

6. 응용 문제

문제 1:

특정 월급 범위(2000 이상 5000 이하) 내에 있으며, 직업이 ‘SALESMAN’, ‘CLERK’인 직원들을 조회하는 SQL 쿼리를 작성하시오.

문제 2:

직업이 ‘ANALYST’, ‘MANAGER’가 아닌 직원들 중 월급이 1500 이상인 직원들의 이름과 직업을 조회하는 SQL 쿼리를 작성하시오.

7. 응용 문제 해답

해답 1:

SELECT ename, sal, job
FROM emp
WHERE sal BETWEEN 2000 AND 5000
AND job IN ('SALESMAN', 'CLERK');

해답 2:

SELECT ename, job
FROM emp
WHERE job NOT IN ('ANALYST', 'MANAGER')
AND sal >= 1500;

8. 전자상거래 업계에서의 사용 예시

사용될 수 있는 경우 예측:

  • 상품 필터링: 여러 카테고리의 상품을 한 번에 조회.
  • 고객 맞춤형 추천: 여러 고객 세그먼트에 맞는 상품 추천.

예상 상황 문제:

  1. 특정 카테고리(‘Electronics’, ‘Books’, ‘Clothing’)에 속한 상품을 조회하는 SQL 쿼리를 작성하시오.
  2. 판매량이 높은 상품이지만, 특정 브랜드(‘BrandA’, ‘BrandB’)에 속하지 않은 상품을 조회하는 SQL 쿼리를 작성하시오.

SQL 코드 및 시각적 예시

문제 1 SQL 코드:

SELECT product_name, category, price
FROM products
WHERE category IN ('Electronics', 'Books', 'Clothing');
예시 테이블:
product_namecategoryprice
LaptopElectronics1200
NovelBooks15
T-shirtClothing25

문제 2 SQL 코드:

SELECT product_name, sales, brand
FROM products
WHERE sales > 1000
AND brand NOT IN ('BrandA', 'BrandB');
예시 테이블:
product_namesalesbrand
Phone1500BrandC
Book1200BrandD
Jacket1100BrandE

Posts created 411

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top