학습 자료

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을 적절히 처리하면 데이터의 일관성과 해석력을 높일 수 있습니다.

Quiz
0 / 1

여러 표현식 목록에서 첫 번째 NULL이 아닌 값을 반환하는 SQL 함수는 무엇인가요?

IS NULL

COALESCE

IFNULL

NULLIF

학습 자료

AI 튜터

도움말

코드 에디터

코드 실행
코드 생성

DB 테이블 구조

실행 결과