DB *_*ent 7 sql null database-management
教授问我这个问题:
在三值逻辑的上下文中,布尔和比较运算符的语义是什么?
我不确定他的意思.什么是比较运算符?这与关系运算符相同吗?语义?他在三值逻辑的背景下询问这两个术语的"意义"?
谢谢.
根据定义,布尔值包含两个选项:True和False,或者它们的一些表示,如1/0,ON/OFF,YES/NO等.
许多数据库系统还允许您在指定为布尔值的字段中存储NULL值,以允许它们表示三个值:Yes,No和Unknown(NULL).
布尔运算符是AND,OR和NOT.
比较运算符是EQUALS或NOT EQUALS的某种形式.
两端的TRUE/FALSE值操作很明显:
TRUE或FALSE - > TRUE
NOT TRUE - > FALSE
TRUE = TRUE - > TRUE
他得到的是添加NULL(未知)值的后果:
TRUE或UNKNOWN(NULL) - > ???
NOT UNKNOWN(NULL) - > ???
TRUE = UNKNOWN(NULL) - > ???
http://en.wikipedia.org/wiki/Null_(SQL)#Three-valued_logic_.283VL.29
基本上,三值逻辑是 true/false/null,布尔/比较运算符在比较 true == null、null == null 等时将以某些方式起作用。