SQL 에서 NULL의 의미
- unknown
- unavailable or withheld (공개X)
- not applicable (적용불가 해당사항없음)
사용예시
- IS NULL
- IS NOT NULL
SELECT id FROM employee WHERE birth_date IS NULL; -- IS NOT NULL
NULL과 SQL three-valued logic
- SQL에서 NULL과 비교 연산을 하게 되면 그 결과는 UNKNOWN이다
- UNKNOWN은 'TRUE 일수도 있고 FALSE일 수도 있다'라는 의미이다
- three-valued logic : 비교/논리 연산의 결과로 TRUE, FALSE, UNKNOWN을 가진다
WHERE 절의 conditions
- WHERE 절에 있는 conditions의 결과가 TRUE인 tuple만 선택된다
- 즉 결과가 FALSE거나 UNKNOWN이면 tuple은 선택되지 않는다
NOT IN 사용 시 주의사항
v NOT IN (M1, V2, V3)는 아래와 같은 의미이다
v != v1 AND v!= v2 AND v != v3
만약 v1, v2, v3 중에 하나가 NULL이라면? 결과는 UNKNOWN이 될수 있다.
해결방안
- is not null 조건 추가
- not exists로 변경
'STUDY > database' 카테고리의 다른 글
| [MySQL] 데이터 조회(5) group by (0) | 2023.11.27 |
|---|---|
| [MySQL] 데이터조회(4) JOIN (0) | 2023.11.27 |
| [MySQL] 데이터 조회(2) subquery (0) | 2023.11.27 |
| [MySQL] 데이터 조회(1) (1) | 2023.11.27 |
| [MySQL] 데이터 추가, 수정, 삭제 (0) | 2023.11.23 |