sqld

NULL이 무엇인가요?

자격증원톱 2026. 2. 21. 12:36
반응형

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)으로 바꿔서 계산

 

반응형