반응형
NULL이 무엇인가요?
반응형

1) NULL이란?
- DB에서 값이 “없다/모른다/아직 입력 안 됐다”를 뜻하는 특별한 표시입니다.
- 0(숫자 0), 빈문자(''), 공백(' ')과는 다릅니다.
- 0은 “값이 0”
- ''는 “빈 문자열”
- NULL은 “값 자체가 없음(미정/미입력)”
✅ 예시
- 전화번호를 아직 안 적음 → NULL
- 포인트가 0점임 → 0
2) NULL은 “하나의 값처럼” 취급된다
- NULL은 “없는 값”이지만 DB에서는 하나의 상태(값)처럼 다룹니다.
- 그래서 비교/연산에서 특별 규칙이 생깁니다.
3) NULL이 연산에 끼면 결과는 보통 NULL
이미지 핵심 문장: “NULL 값 연산은 언제나 NULL이다”
왜?
- NULL은 “모르는 값”이라 계산 결과도 확정할 수 없기 때문입니다.
예시(총가격 = 가격 × 수량)
| 아이템 | 가격 | 수량 |
| 1 | 100 | 2 |
| 2 | NULL | 3 |
| 3 | 200 | NULL |
| 4 | NULL | NULL |
총가격 = 가격 * 수량을 계산하면
- 1번: 100×2 = 200
- 2번: NULL×3 = NULL
- 3번: 200×NULL = NULL
- 4번: NULL×NULL = NULL
4) NULL을 처리하려면: NVL 함수(오라클)
- NVL(값, 대체값)
- 값이 NULL이면 대체값으로 바꿔서 계산하게 만듭니다.
예시: NULL이면 0으로 바꿔서 총가격 계산
SELECT
아이템ID,
NVL(가격, 0) * NVL(수량, 0) AS 총가격
FROM 아이템테이블;
그러면 결과는
- 가격이나 수량이 NULL이면 0으로 처리 → 총가격이 0이 됨
예시 결과
- 1번: 100×2 = 200
- 2번: 0×3 = 0
- 3번: 200×0 = 0
- 4번: 0×0 = 0
5) 실무 주의점
- 분석에서 무조건 0으로 바꾸면 의미가 왜곡될 수 있습니다.
예: “가격 미입력”을 “가격 0”으로 바꾸면 실제로 무료처럼 보임 - 상황에 따라 평균값/중앙값/별도 상태값으로 처리하는 방식도 씁니다.
초간단 요약
- NULL = 값이 없음/모름/미입력
- 0, 빈문자와 다름
- NULL이 연산에 끼면 결과는 보통 NULL
- 필요하면 NVL로 NULL을 원하는 값(예: 0)으로 바꿔서 계산
반응형
'sqld' 카테고리의 다른 글
| SELECT 문 (0) | 2026.02.23 |
|---|---|
| 본질식별자 vs 인조식별자 정의 (0) | 2026.02.21 |
| 트랜젝션에 대해 알아보자! (0) | 2026.02.21 |
| 계층형 데이터모델에 대해 알아봅시다! (0) | 2026.02.21 |
| 관계와 조인(Join)의 개념 (0) | 2026.02.21 |