DB 데이터/MySQL 기본기 & 문법 정리

WHERE 절과 연산자 정리

backend.log 2025. 4. 23. 18:01
728x90
반응형

📘 1-5. WHERE 절과 연산자 정리

WHERE 절은 데이터 조회 시 조건을 설정하는 필수 문법입니다.
단순 조건부터 복잡한 논리 연산, 범위 필터링까지 다양하게 활용되며 SQL의 핵심 도구 중 하나입니다.


🎯 기본 WHERE 문법

SELECT * FROM users WHERE email = 'test@example.com';

→ email이 'test@example.com'인 사용자만 조회합니다.


⚙️ 자주 쓰이는 비교 연산자

연산자 의미 예시
= 같다 WHERE name = '홍길동'
!=, <> 같지 않다 WHERE status != 'Y'
>, >= 보다 크다 / 크거나 같다 WHERE age >= 30
<, <= 보다 작다 / 작거나 같다 WHERE created_at < '2025-01-01'
IN (...) 여러 값 중 포함 여부 WHERE id IN (1, 2, 3)
BETWEEN A AND B A와 B 사이 값 WHERE age BETWEEN 20 AND 29
LIKE 유사 문자열 검색 WHERE name LIKE '홍%' (홍으로 시작)
IS NULL / IS NOT NULL NULL 여부 확인 WHERE deleted_at IS NULL

🔗 논리 연산자 (AND, OR, NOT)

SELECT * FROM users 
WHERE status = 'Y' AND age > 20;

→ 상태가 'Y'이고 나이가 20 이상인 유저만 조회

SELECT * FROM users 
WHERE name LIKE '김%' OR name LIKE '이%';

→ 이름이 김 또는 이로 시작하는 유저 조회

SELECT * FROM users 
WHERE NOT (email LIKE '%@test.com');

→ 이메일이 @test.com으로 끝나지 않는 유저


📌 실무 사용 예시

✅ 특정 날짜 이후 생성된 유저

SELECT * FROM users 
WHERE created_at >= '2024-01-01';

✅ 이름에 '길동' 포함 & 활성화된 유저

SELECT * FROM users 
WHERE name LIKE '%길동%' AND status = 'Y';

✅ 회원 등급이 'A', 'B'인 유저

SELECT * FROM users 
WHERE grade IN ('A', 'B');

📚 다음 글 예고

다음 포스팅에서는 정렬(ORDER BY), 그룹화(GROUP BY), 집계 함수에 대해 다룹니다.
👉 1-6. 정렬, 그룹화, 집계함수 정리

728x90
반응형