개발/SQL

WHERE 절 & 조건문 활용: BETWEEN, IN, LIKE, IS NULL 등

예니03 2025. 3. 7. 08:47
반응형

SQL에서 데이터를 조회하거나 수정할 때 특정 조건을 걸어 원하는 데이터만 다루는 것이 중요합니다.
이때 사용하는 것이 바로 WHERE 절입니다.

이번 글에서는 WHERE 절과 함께 사용되는 다양한 조건문(BETWEEN, IN, LIKE, IS NULL 등)의 개념과 실전 예제를 살펴보겠습니다.

 

🔹 WHERE 절이란?

WHERE 절은 특정 조건을 만족하는 행만 선택할 때 사용됩니다.
일반적으로 SELECT, UPDATE, DELETE와 함께 사용됩니다.

SELECT * FROM employees WHERE department = '개발팀';
  • employees 테이블에서 department가 '개발팀'인 행만 조회

WHERE 절 주요 연산자

연산자 설명 예제
= 특정 값과 일치하는 데이터 조회 salary = 5000000
!= or <> 특정 값과 다른 데이터 조회 department <> '인사팀'
> 특정 값보다 데이터 조회 salary > 3000000
< 특정 값보다 작은 데이터 조회 salary < 6000000
>= 특정 값보다 크거나 같은 데이터 조회 salary >= 5000000
<= 특정 값보다 작거나 같은 데이터 조회 salary <= 4500000

 

🔹 1. BETWEEN – 범위 조건 검색

BETWEEN은 두 값 사이에 속하는 데이터를 검색할 때 사용됩니다.
>= 최소값 AND <= 최대값과 같은 의미를 가집니다.

SELECT * FROM employees WHERE salary BETWEEN 3000000 AND 6000000;
  • salary가 3,000,000 이상 6,000,000 이하인 직원 조회

BETWEEN 활용 예시

사용 예시 설명
BETWEEN 10 AND 50 10 이상 50 이하
BETWEEN '2024-01-01' AND '2024-12-31' 특정 날짜 범위 조회

주의: BETWEEN은 양 끝 값도 포함합니다!

 

🔹 2. IN – 여러 값 중 하나를 검색

IN은 여러 개의 값을 비교할 때 사용되며, OR 연산자를 대체할 수 있습니다.

SELECT * FROM employees WHERE department IN ('개발팀', '마케팅팀', '영업팀');
  • department가 '개발팀', '마케팅팀', '영업팀' 중 하나인 직원 조회

IN 활용 예시

사용 예시 설명
IN (1, 2, 3, 4, 5) 특정 숫자 리스트 조회
IN ('서울', '부산', '대구') 특정 지역 데이터 조회

💡 IN은 OR보다 가독성이 좋고 실행 속도가 빠를 수 있음

 

🔹 3. LIKE – 특정 패턴과 일치하는 데이터 검색

LIKE는 문자열에서 특정 패턴을 찾을 때 사용됩니다.
%와 _ 와일드카드를 활용할 수 있습니다.

와일드카드 설명

와일드카드 설명 예제
% 0개 이상의 문자 포함 '김%' → '김철수', '김영희'
_ 한 글자만 매칭 '김_수' → '김철수', '김민수'

LIKE 활용 예제

SELECT * FROM employees WHERE name LIKE '김%';
  • '김'으로 시작하는 직원 조회 (김철수, 김영희 등)
SELECT * FROM employees WHERE email LIKE '%@gmail.com';
  • gmail.com 이메일을 가진 직원 조회
SELECT * FROM employees WHERE phone LIKE '010-___-5678';
  • 010-로 시작하고, 중간 숫자 3자리가 어떤 값이든 상관없이 끝이 5678인 전화번호 검색

💡 LIKE은 인덱스를 사용할 수 없어 속도가 느릴 수 있음
대량 데이터에서 LIKE를 사용하면 성능 문제가 발생할 수도 있음

 

🔹 4. IS NULL – NULL 값 검색

IS NULL은 특정 컬럼의 값이 NULL인지 확인할 때 사용됩니다.
(=로 NULL을 비교할 수 없음!)

SELECT * FROM employees WHERE email IS NULL;
  • email이 없는 직원 조회

IS NULL 활용 예시

조건 설명
IS NULL 값이 NULL인 데이터 조회
IS NOT NULL 값이 NULL이 아닌 데이터 조회

💡 NULL은 공백('')이나 0과 다름
WHERE email = NULL ❌ → WHERE email IS NULL ✅

 

🔹 WHERE 절 활용 종합 예제

SELECT * FROM employees 
WHERE department IN ('개발팀', '마케팅팀') 
AND salary BETWEEN 4000000 AND 7000000 
AND name LIKE '김%' 
AND email IS NOT NULL;
  • department가 '개발팀' 또는 '마케팅팀'이고
  • salary가 4,000,000 이상 7,000,000 이하이며
  • name이 '김'으로 시작하고
  • email이 NULL이 아닌 직원 조회
반응형