이번 강의에서는 여러 개의 값을 한 번에 비교하여 데이터를 검색하는 방법인 IN과 NOT IN 연산자에 대해 배울 거야.
이 연산자들은 여러 개의 값 중 하나에 일치하는 값을 찾거나, 일치하지 않는 값을 찾을 때 사용돼.
✅ 1. IN 연산자
IN 연산자는 주어진 값 목록 중 하나와 일치하는 데이터를 찾을 때 사용해.
간단하게 여러 개의 값을 동시에 비교할 수 있어!
1) 기본 사용법
📌 여러 개의 값을 한 번에 비교할 때 IN 사용
SELECT name, email
FROM customers
WHERE name IN ('김철수', '이영희', '박민준');
📌 실행 결과

설명: IN ('김철수', '이영희', '박민준')은 이름이 '김철수', '이영희', '박민준'인 고객을 모두 찾는 조건이야.
IN을 사용하면 여러 개의 값을 한 번에 처리할 수 있어서 OR을 여러 번 쓰는 것보다 깔끔하고 효율적이야!
2) 서브쿼리와 함께 사용
📌 연봉이 5000 이상인 직원들의 부서가 '개발팀'이나 '영업팀'인 경우 조회
SELECT name, department, salary
FROM employees
WHERE department IN (SELECT department FROM employees WHERE salary >= 5000);
📌 실행 결과
설명: IN (SELECT department FROM employees WHERE salary >= 5000)는 서브쿼리로 연봉이 5000 이상인 부서를 찾고, 그 부서에 속한 직원들을 조회하는 예제야. 서브쿼리 결과를 IN으로 처리해서 조건을 만족하는 데이터들을 쉽게 찾아낼 수 있어.
✅ 2. NOT IN 연산자
NOT IN 연산자는 주어진 값 목록에 포함되지 않는 값을 찾을 때 사용해.
IN과 반대로 특정 값들을 제외한 나머지 값을 조회할 때 유용해!
1) 기본 사용법
📌 이름이 '김철수', '이영희', '박민준'이 아닌 고객 찾기
SELECT name, email
FROM customers
WHERE name NOT IN ('김철수', '이영희', '박민준');
📌 실행 결과

설명: NOT IN ('김철수', '이영희', '박민준')은 이름이 '김철수', '이영희', '박민준'이 아닌 고객을 찾는 조건이야.
**NOT IN**을 사용하면 특정 값들을 제외한 다른 값들을 쉽게 필터링할 수 있어.
2) 서브쿼리와 함께 사용
📌 연봉이 5000 이상인 직원들 중에서 '개발팀' 또는 '영업팀'이 아닌 직원 조회
SELECT name, department, salary
FROM employees
WHERE department NOT IN (SELECT department FROM employees WHERE salary >= 5000);
📌 실행 결과

설명: NOT IN (SELECT department FROM employees WHERE salary >= 5000)는 연봉이 5000 이상인 부서를 제외한 나머지 부서에 속한 직원들을 조회하는 예제야. 서브쿼리로 제외할 값을 찾고, 그 값을 제외한 나머지를 필터링하는 방법이야.
✅ 3. IN과 NOT IN 사용 시 주의 사항
- NULL 값 처리: IN이나 NOT IN에서 NULL 값이 포함되면 결과가 예상과 다를 수 있다.
예를 들어, IN이나 NOT IN에 NULL 값이 있을 경우, 그 결과는 UNKNOWN으로 취급되어 검색되지 않을 수 있음.
이런 경우에는 **IS NULL**을 추가해서 처리하는 것이 좋다.
✅ 4. 정리
'기획자가 알아야 할 IT지식 > 기획자가 알아야 할 SQL' 카테고리의 다른 글
12강. 대소문자 변환 함수 (UPPER, LOWER, INITCAP) (0) | 2025.03.22 |
---|---|
11강. 논리 연산자 - AND, OR, NOT (0) | 2025.03.22 |
9강. 패턴이 일치하는 값을 검색하는 방법 - LIKE 연산자 (0) | 2025.03.22 |
8강. 비교 연산자를 활용한 데이터 필터링 (0) | 2025.03.21 |
7강. 산술 연산자(+,-,x,/)를 통해 SQL문 작성하기 (0) | 2025.03.21 |