在SQL中,如果我想知道表达式是否为NULL,我可以使用is null
。
但我不明白如何在关系代数中表达is null
。
我可以使用δ Field_Name=NULL(Table_Name)
吗?
答案 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?。