【发布时间】:2010-03-02 00:02:54
【问题描述】:
教授问我这个问题:
三值逻辑上下文中布尔和比较运算符的语义是什么?
我不确定他的意思。什么是比较运算符?这和关系运算符一样吗?语义?他在三值逻辑的上下文中询问这两个术语的“含义”?
谢谢。
【问题讨论】:
标签: sql null database-management
教授问我这个问题:
三值逻辑上下文中布尔和比较运算符的语义是什么?
我不确定他的意思。什么是比较运算符?这和关系运算符一样吗?语义?他在三值逻辑的上下文中询问这两个术语的“含义”?
谢谢。
【问题讨论】:
标签: sql null database-management
根据定义,布尔值包含两个选项:True 和 False,或者它们的某种表示形式,如 1/0、ON/OFF、YES/NO 等。
许多数据库系统还允许您在指定为布尔值的字段中存储 NULL 值,以允许它们表示三个值:是、否和未知 (NULL)。
布尔运算符是 AND、OR 和 NOT。
比较运算符是 EQUALS 或 NOT EQUALS 的某种形式。
两端 TRUE/FALSE 值的操作很明显:
对或错 -> 对
不正确 -> 错误
真=真->真
他得到的是添加 NULL(未知)值的后果:
TRUE 或 UNKNOWN(NULL) -> ???
NOT UNKNOWN(NULL) -> ???
真=未知(空)->???
【讨论】:
http://en.wikipedia.org/wiki/Null_(SQL)#Three-valued_logic_.283VL.29
基本上,三值逻辑是真/假/空,布尔/比较运算符在比较真==空、空==空等时会有一定的作用。
【讨论】:
根据定义,布尔逻辑仅使用两个值。对我来说,这个问题没有意义。如果他问你如何定义或扩展布尔逻辑以便它可以使用三值系统,那就更清楚了。
【讨论】: