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

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 대체하기: COALESCEIFNULL

COALESCEIFNULL을 사용해 NULL 값을 기본값으로 바꿀 수 있습니다.

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

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

다음과 같은 테이블이 있다고 가정해 봅시다.

user_idcourse_namefeedback_text
1SQL BasicsGreat course!
2SQL BasicsNULL
3SQL BasicsNULL

누락된 피드백을 'No comment'으로 바꾸고 싶습니다.

누락된 피드백을 '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 강의를 등록해 주세요!