본문 바로가기
컴퓨터공학/데이터베이스(database)

database three valued logic

by 바코94 2024. 5. 14.
  • 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