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을 적절히 처리하면 데이터의 일관성과 해석력을 높일 수 있습니다.
Quiz
0 / 1
여러 표현식 목록에서 첫 번째 NULL이 아닌 값을 반환하는 SQL 함수는 무엇인가요?
IS NULL
COALESCE
IFNULL
NULLIF
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
DB 테이블 구조
실행 결과