본문으로 건너뛰기
실습하기

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

COALESCEIFNULL을 사용하면 NULL 값을 지정한 기본값으로 대체할 수 있습니다.

  • COALESCE(value1, value2, ...) : 첫 번째로 NULL이 아닌 값을 반환
  • IFNULL(value, fallback) : 값이 NULL이면 fallback으로 대체 (MySQL, SQLite 등 일부 엔진에서만 지원)

예시: 누락된 피드백을 'No comment'로 대체

다음과 같은 테이블이 있다고 가정합니다.

user_idcourse_namefeedback_text
1SQL BasicsGreat course!
2SQL BasicsNULL
3SQL BasicsNULL
누락된 피드백을 'No comment'으로 대체
SELECT 
user_id,
course_name,
COALESCE(feedback_text, 'No comment') AS comment
FROM course_feedback;

결과

user_idcourse_namecomment
1SQL BasicsGreat course!
2SQL BasicsNo comment
3SQL BasicsNo comment

NULL을 처리해야 하는 이유

  • NULL을 고려하지 않으면 필터링 결과가 잘못될 수 있습니다.
  • CASE 표현식이나 계산식이 깨질 수 있습니다.
  • 분석 및 리포트에서 데이터 품질 문제가 발생할 수 있습니다.

따라서 NULL을 적절히 처리하면 데이터의 일관성과 해석력을 높일 수 있습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!