Null
Null의 의미
- unknown : 알 수 없음
- unavailable or withheld : 비공개
- not applicable : 해당사항 없음
Null의 사용
(X) SELECT id FROM employee WHERE birth_date = NULL;
(O) SELECT id FROM employee WHERE birth_date IS NULL;
Three-Valued Logic
- SQL에서 NULL과 비교 연산을 하게 되면 결과는 UNKNOWN이다.
- UNKNOWN은 TRUE일 수도 있고 FALSE일 수도 있다는 의미
- Three-valued Logic : 비교/논리 연산의 결과로 TRUE, FALSE, UNKNOWN을 가진다.
1 = NULL -> UNKNOWN
1 != NULL -> UNKNOWN
1 > NULL -> UNKNOWN
1 <= NULL -> UNKNOWN
NULL = NULL -> UNKNOWN
- TRUE and UNKNOWN -> UNKNOWN
FALSE and UNKNOWN -> FALSE
UNKNOWN and UNKNOWN -> UNKNOWN - TRUE or UNKNOWN -> TRUE
FALSE or UNKNOWN -> UNKNOWN
UNKNOWN or UNKNOWN -> UNKNOWN - not UNKNOWN -> UNKNOWN
not in 사용 시 주의 사항
3 not in (1, 2, NULL)
→ 3 != 1 → TRUE
→ 3 != 2 → TRUE
→ 3 ? NULL → UNKNOWN
결과는 UNKNOWN
'공부 기록 > Database' 카테고리의 다른 글
정렬, 집계 함수, 그룹핑 (0) | 2023.06.02 |
---|---|
Join (0) | 2023.06.02 |
쿼리 안의 쿼리(서브쿼리) (0) | 2023.05.02 |
DML - 데이터 조작하기 (0) | 2023.01.19 |
DDL - Table 생성하기, 목록 및 구조 확인 (0) | 2023.01.19 |