SQL에서 NULL 처리
SQL에서 NULL
은 누락되었거나 알 수 없는 값을 의미합니다.
0
, 빈 문자열(''
), false
와는 다르며, 단순히 “값이 존재하지 않음”을 나타냅니다.
NULL
을 올바르게 감지하고 처리하는 것은 정확한 쿼리 작성과 데이터 분석에서 매우 중요합니다.
NULL 확인하기
NULL
과 비교할 때는 =
또는 !=
연산자를 사용할 수 없습니다.
대신 다음과 같은 연산자를 사용합니다.
IS NULL
: 값이NULL
인지 확인IS NOT NULL
: 값이NULL
이 아닌지 확인
피드백이 없는 사용자 찾기
SELECT user_id
FROM course_feedback
WHERE feedback_text IS NULL;
NULL 대체하기: COALESCE와 IFNULL
COALESCE
와 IFNULL
을 사용하면 NULL
값을 지정한 기본값으로 대체할 수 있습니다.
COALESCE(value1, value2, ...)
: 첫 번째로NULL
이 아닌 값을 반환IFNULL(value, fallback)
: 값이NULL
이면fallback
으로 대체 (MySQL, SQLite 등 일부 엔진에서만 지원)
예시: 누락된 피드백을 'No comment'로 대체
다음과 같은 테이블이 있다고 가정합니다.
user_id | course_name | feedback_text |
---|---|---|
1 | SQL Basics | Great course! |
2 | SQL Basics | NULL |
3 | SQL Basics | NULL |
누락된 피드백을 'No comment'으로 대체
SELECT
user_id,
course_name,
COALESCE(feedback_text, 'No comment') AS comment
FROM course_feedback;
결과
user_id | course_name | comment |
---|---|---|
1 | SQL Basics | Great course! |
2 | SQL Basics | No comment |
3 | SQL Basics | No comment |
NULL을 처리해야 하는 이유
NULL
을 고려하지 않 으면 필터링 결과가 잘못될 수 있습니다.CASE
표현식이나 계산식이 깨질 수 있습니다.- 분석 및 리포트에서 데이터 품질 문제가 발생할 수 있습니다.
따라서 NULL
을 적절히 처리하면 데이터의 일관성과 해석력을 높일 수 있습니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!