본문 바로가기

공부 기록/Database

Three-Valued Logic

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