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

DB *_*ent 7 sql null database-management

教授问我这个问题:

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

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

谢谢.

Joh*_*nFx 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
NOT TRUE - > FALSE
TRUE = TRUE - > TRUE

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


Tan*_*lax 3

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

基本上,三值逻辑是 true/false/null,布尔/比较运算符在比较 true == null、null == null 等时将以某些方式起作用。