- sql에서 null의 의미
- unknown: 아직 모름
- unavaliable or withheld: 민감정보로 공개 안한다던지 이유로 이용할 수 없음
- not applicable: 해당 사항 자체가 없는 경우(핸드폰이 아예 없는 다던지)
- null과 비교할때는 IS, IS NOT을 사용해야함.
- null과 비교연산을 하게되면(=,!=, <>, > 등) 결과는 UNKOWN
- UNKOWN: "TRUE일 수도 있고 FALSE일 수도 있다."
- three-valued logic: 비교/논리 연산의 결과로 T, F, UNKNOWN을 가짐
- and, or not 연산에서 unknown에 의해 결정되는 경우
- true AND unknown: unknown
- false or unknown: unknown
- not unknown:
- where 절은 condition(s)의 결과가 true인 tuple(s)만 선택됨. 즉, false와 unknown이면 tuple은 선택되지 않음
- ex. 3 not in (1, 2, null) -> 3 != 1 and 3 != 2 and 3 != null 이기 때문에 unknown
- not in (values)에 null이 있으면 unknwon이 됨.
- 1. NOT IN 쓰는 경우 조건식에 AND E.dept_id IS not null 사용
2. NOT EXISTS 사용 ()
3. dept_id에 NOT NULL constraint 사용 - # 2000년대생이 없는 부서의 id, 이름 SELECT D.id, D.name FROM department D WHERE NOT EXISTS ( select * from employee E where E.dept_id = D.id and E.birth_date >= '2000-01-01' )
'컴퓨터공학 > 데이터베이스(database)' 카테고리의 다른 글
정규화 (0) | 2024.06.21 |
---|---|
m1 mysqlworkbench ui 버그 (0) | 2024.05.20 |
database grouping, aggregate function, ordering (0) | 2024.05.14 |
database table join (0) | 2024.05.14 |
[Query Processing]Join Operation (0) | 2020.06.07 |