表达"为空"在关系代数中

时间:2017-04-15 15:28:34

标签: null relational-algebra isnull

在SQL中,如果我想知道表达式是否为NULL,我可以使用is null

但我不明白如何在关系代数中表达is null

我可以使用δ Field_Name=NULL(Table_Name)吗?

1 个答案:

答案 0 :(得分:2)

关系代数中没有NULL。在SQL中,运算符在特殊,语法和语义上对NULL值的处理方式与其他值不同,通常在比较两个值时返回NULL,当其中一个值为NULL时。所以" ="在WHERE中不相等,它是一个像NULL一样的运算符,对NULL的行为不同。所以SQL WHERE与代数RESTRICT不是同一个运算符。

如果有人想在关系代数中使用NULL来设置或查询关系变量,你必须直截了当地说出像#34; AND"和" =" (还有像RESTRICT和PROJECT这样的关系运算符),以及NULL是否是由它们专门处理的值。

另见What to do with null values when modeling and normalizing?