三值逻辑上下文中布尔和比较运算符的语义

时间:2010-03-02 00:02:55

标签: sql null database-management

教授问我这个问题:

三值逻辑上下文中布尔和比较运算符的语义是什么?

我不确定他的意思。什么是比较运算符?这与关系运算符相同吗?语义?他在三值逻辑的背景下询问这两个术语的“意义”吗?

感谢。

3 个答案:

答案 0 :(得分:6)

根据定义,布尔值包含两个选项:True和False,或者它们的一些表示,如1/0,ON / OFF,YES / NO等。

许多数据库系统还允许您在指定为布尔值的字段中存储NULL值,以允许它们表示三个值:Yes,No和Unknown(NULL)。

布尔运算符是AND,OR和NOT 比较运算符是EQUALS或NOT EQUALS的某种形式。

两端的TRUE / FALSE值操作显而易见:
是或否 - > TRUE
不正确 - > FALSE
TRUE = TRUE - >是的

他得到的是添加NULL(未知)值的后果:
TRUE或UNKNOWN(NULL) - > ???
NOT UNKNOWN(NULL) - > ???
TRUE = UNKNOWN(NULL) - > ???

答案 1 :(得分:3)

http://en.wikipedia.org/wiki/Null_(SQL)#Three-valued_logic_.283VL.29

基本上,三个值逻辑是true / false / null,当比较true == null,null == null等时,布尔/比较运算符将以某种方式运行。

答案 2 :(得分:0)

根据定义,布尔逻辑仅使用两个值。对我来说,这个问题没有意义。如果他问你如何定义或扩展布尔逻辑以便它可以使用三值系统,那就更清楚了。