비교 연산자
| 연산자 | 설명 | 예시 |
|---|---|---|
= | 같음 | WHERE age = 25 |
!= 또는 <> | 같지 않음 | WHERE age != 25 |
< | 작음 | WHERE age < 25 |
> | 큼 | WHERE age > 25 |
<= | 작거나 같음 | WHERE age <= 25 |
>= | 크거나 같음 | WHERE age >= 25 |
IS NULL | NULL 값 확인 | WHERE email IS NULL |
IS NOT NULL | NULL이 아닌 값 확인 | WHERE email IS NOT NULL |
BETWEEN ... AND ... | 범위 내 값 확인 (양쪽 포함) | WHERE age BETWEEN 20 AND 30 |
IN (...) | 목록에 포함된 값 확인 | WHERE status IN ('active', 'pending') |
NOT IN (...) | 목록에 포함되지 않은 값 확인 | WHERE status NOT IN ('deleted') |
LIKE | 패턴 매칭 (부분 일치) | WHERE name LIKE '김%' |
NOT LIKE | 패턴 매칭 실패 | WHERE name NOT LIKE '김%' |
REGEXP 또는 RLIKE | 정규식 매칭 | WHERE email REGEXP '^[a-z]+@' |
LIKE 패턴
%: 0개 이상의 문자 (예:'김%'→ '김'으로 시작)_: 정확히 1개의 문자 (예:'김_'→ '김' + 1글자)
논리 연산자
| 연산자 | 설명 | 예시 |
|---|---|---|
AND 또는 && | 모든 조건이 참이어야 함 | WHERE age> 20 ANDstatus = 'active' |
OR 또는 || | 하나 이상의 조건이 참이면 됨 | WHERE status= 'active' ORstatus = 'pending' |
NOT 또는 ! | 조건을 반전 | WHERE NOT status = 'deleted' |
XOR | 하나만 참이어야 함 (둘 다 참이면 거짓) | WHERE age> 20 XORstatus = 'active' |
우선순위: NOT > AND > OR > XOR
NULL 비교 주의사항
= 연산자로는 NULL을 비교할 수 없고, IS NULL 또는 IS NOT NULL을 사용해야 한다.
-- 잘못된 예시 (항상 NULL 반환)
SELECT * FROM `users` WHERE `email` = NULL;
-- 올바른 예시
SELECT * FROM `users` WHERE `email` IS NULL;
SELECT * FROM `users` WHERE `email` IS NOT NULL;