SQL 비교 연산자 =, <, >, IN, BETWEEN, <=>, IS 사용법 정리
비교 연산자(Comparison Operators)는 SQL에서 조건을 지정하거나 데이터 필터링할 때 가장 기본적이면서도 중요한 도구입니다. 이 글에서는 =, !=, BETWEEN, IN, IS NULL 등 다양한 비교 연산자와 그 차이점을 예제 중심으로 설명드립니다.
1. SQL 비교 연산자 종류 및 기능
| 연산자 | 설명 | 예제 | 결과 |
|---|---|---|---|
= |
같음 | 3 = 3 |
1 |
!=, <> |
같지 않음 | 3 != 4 |
1 |
<, <=, >, >= |
크기 비교 | 5 >= 3 |
1 |
<=> |
NULL 포함 비교 | NULL <=> NULL |
1 |
IS, IS NOT |
값이 TRUE, FALSE, NULL인지 확인 | 1 IS NOT NULL |
1 |
BETWEEN ... AND ... |
범위 내 값 확인 | 3 BETWEEN 1 AND 5 |
1 |
IN(...) |
목록에 포함되는 값인지 확인 | 5 IN (1, 3, 5) |
1 |
NOT IN(...) |
목록에 포함되지 않는 값인지 확인 | 6 NOT IN (1, 3, 5) |
1 |
2. 주요 비교 연산자 사용 예제
2.1. 같음과 다름: =, !=, <>
SELECT 3 = 3 AS Same; -- 결과: 1
SELECT 3 != 4 AS NotSame; -- 결과: 1
SELECT 5 <> 5 AS False; -- 결과: 0
2.2. 크기 비교: <, <=, >, >=
SELECT 3 < 4 AS Result; -- 1
SELECT 5 >= 5 AS Result; -- 1
3. NULL과의 안전한 비교: <=>
- 일반 비교(
=)는 NULL 값 비교 시 항상 거짓(0)을 반환합니다. <=>는 NULL 비교도 가능하며, 두 값이 모두 NULL이면 참(1)을 반환합니다.
SELECT NULL = NULL AS A; -- 결과: NULL
SELECT NULL <=> NULL AS B; -- 결과: 1
SELECT 1 <=> NULL AS C; -- 결과: 0
4. IS, IS NOT, IS NULL, IS NOT NULL
SELECT 1 IS TRUE AS A; -- 1
SELECT 0 IS NOT TRUE AS B; -- 1
SELECT NULL IS NULL AS C; -- 1
SELECT 1 IS NOT NULL AS D; -- 1
- IS NULL: 값이 NULL인지 확인
- IS NOT NULL: 값이 NULL이 아닌지 확인
5. BETWEEN과 IN 연산자
5.1. BETWEEN … AND …
SELECT 3 BETWEEN 1 AND 5 AS A; -- 1
SELECT 6 NOT BETWEEN 1 AND 5 AS B; -- 1
- 경계 포함:
1 ≤ 값 ≤ 5
5.2. IN(…), NOT IN(…)
SELECT 5 IN (1, 3, 5) AS A; -- 1
SELECT 6 NOT IN (1, 3, 5) AS B; -- 1
✅ IN 절 안에 NULL이 포함되면 전체 비교가 NULL로 처리될 수 있으니 주의하세요.
6. 실전 예제 모음
6.1. 단순 조건 필터링
SELECT *
FROM Reservation
WHERE RoomNum = 504;
6.2. 복합 조건: 날짜 범위 + IN
SELECT *
FROM Reservation
WHERE ReserveDate BETWEEN '2024-01-01' AND '2024-12-31'
AND RoomNum IN (101, 102, 103);
6.3. NULL 조건 처리
SELECT *
FROM Reservation
WHERE RoomNum IS NULL;
7. 요약 정리표
| 연산자 | 사용 목적 |
|---|---|
=, !=, <, > |
일반 숫자 및 문자열 비교 |
<=> |
NULL 값을 포함한 비교 |
IS, IS NOT |
TRUE, FALSE, NULL 상태 확인 |
IS NULL, IS NOT NULL |
값의 존재 여부 확인 |
BETWEEN ... AND |
범위 내 포함 여부 |
IN(...), NOT IN(...) |
목록에 포함 여부 확인 |
질문 정리
-
=과<=>의 차이는 무엇인가요?-
=는 NULL 비교 시 결과가 NULL(거짓),<=>는 NULL 비교도 평가하여 결과를 반환합니다.
-
-
BETWEEN은 양쪽 경계 포함인가요?
- 네,
BETWEEN A AND B는A ≤ 값 ≤ B조건입니다.
- 네,
-
IN에 NULL이 포함되어 있으면 어떻게 되나요?
- NULL 포함 시 결과가 NULL이 되어 예기치 않은 결과가 나올 수 있습니다.
-
문자열 비교도 가능한가요?
- 네, 문자열도 사전순 비교로
=,<,>연산이 가능합니다.
- 네, 문자열도 사전순 비교로
-
WHERE 절에서
IS대신=을 써도 되나요?- NULL 비교에는 반드시
IS NULL을 사용해야 하며,= NULL은 항상 FALSE입니다.
- NULL 비교에는 반드시
댓글남기기