MySQL에서 NULL 값을 일반 비교 연산자(=, <>, != 등)와 함께 사용하면 의미 있는 결과를 얻을 수 없습니다. 그 이유는 NULL이 '값이 없음' 또는 '알 수 없는 값'을 나타내기 때문에, 어떤 값과도 같거나 다르다고 판정할 수 없기 때문입니다.
이러한 한계를 해결하고 NULL 값을 정확하게 비교하려면 'IS NULL'과 'IS NOT NULL' 연산자를 사용해야 합니다. 이 연산자들은 대상 값이 NULL인지 아닌지를 명확하게 판별하여 불리언(Boolean) 형태의 의미 있는 결과를 반환합니다.
사용 예시
mysql> Select 10 IS NULL; +------------+ | 10 IS NULL | +------------+ | 0 | +------------+ 1 row in set (0.00 sec) mysql> Select 10 IS NOT NULL; +----------------+ | 10 IS NOT NULL | +----------------+ | 1 | +----------------+ 1 row in set (0.00 sec)
결과 해석
위 예시에서 볼 수 있듯이, 'IS NULL'과 'IS NOT NULL'은 결과를 0(FALSE) 또는 1(TRUE)의 불리언 값으로 반환합니다.
- 10 IS NULL → 10은 NULL이 아니므로 0(FALSE) 반환
- 10 IS NOT NULL → 10은 NULL이 아니므로 1(TRUE) 반환
일반 비교 연산자로는 얻을 수 없는 명확하고 의미 있는 결과를 제공한다는 점이 바로 'IS NULL'과 'IS NOT NULL'의 핵심적인 장점입니다. 특히 데이터베이스에서 누락된 값이나 빈 값을 조회할 때 WHERE 절과 함께 활용하면 매우 유용합니다.