NULL is Unknown
NULL은 빈 값이 아니라, 비교할 확정 값이 없다는 표시다
0과 빈 문자열은 값입니다. NULL은 값이 아직 없거나 알 수 없다는 상태라서 비교 결과가 TRUE/FALSE로 닫히지 않고 Unknown이 됩니다.
숫자 값
0
확정된 숫자
점수나 수량이 실제로 0이라는 뜻입니다.
0 = 0
TRUE
문자 값
''
길이가 0인 문자열
대부분의 DBMS에서는 비어 있음이 확정된 문자열 값입니다.
'' = ''
TRUE
미확정 상태
NULL
값을 알 수 없음
알 수 없음, 아직 없음, 해당 없음 같은 미확정 상태를 나타냅니다.
NULL = NULL
Unknown
SQL 조건식은 세 결과를 가질 수 있다
TRUE
조건 만족
FALSE
조건 불만족
Unknown
NULL 때문에 판단 불가
NULL은 비교가 아니라 상태로 검사한다
department = NULL
비교 결과가 Unknown이라 WHERE에서 선택되지 않습니다.
department IS NULL
값을 비교하지 않고 NULL 상태인지 직접 검사합니다.
NULL + 10
모르는 값에 계산을 해도 결과는 여전히 NULL입니다.