반응형
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이 아닌 직원 조회
반응형
'개발 > SQL' 카테고리의 다른 글
JOIN 종류 정리: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN 비교 (0) | 2025.03.16 |
---|---|
HAVING과 WHERE 차이: 그룹 함수와 함께 쓰이는 HAVING의 활용 (0) | 2025.03.15 |
DML과 DDL 차이점: SELECT, INSERT, UPDATE, DELETE vs CREATE, ALTER, DROP (0) | 2025.03.06 |
SQL 개요: 관계형 데이터베이스와 SQL의 기본 개념 (0) | 2025.03.05 |
실전 프로젝트 & 문제 풀이: SQL 실력을 키우는 최고의 방법! 🧪 (0) | 2025.03.04 |