2017-04-15 46 views
0

在SQL中,如果我想知道一個表達式是否爲NULL,我可以使用is null表達「爲空」的關係代數

但我不明白,我怎麼能在關係代數表達is null

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

+0

在你的示例代碼你的意思RESTRICT?這應該是西格瑪(σ)而不是三角洲(δ)。 – philipxy

回答

1

有一個在關係代數沒有NULL。在SQL中,運算符專門處理NULL值,語法和語義上與其他值不同,通常在其中一個值爲NULL時比較兩個值時返回NULL。所以在WHERE中「=」不是相等的,它是一個類似於NULL的運算符,它的行爲不同。所以SQL WHERE與代數RESTRICT不是相同的運算符。

如果有人想用關係代數的NULL來設置或查詢關係變量,那麼必須弄清楚他們說什麼操作符時他們的意思是「AND」和「=」(關係運算符如RESTRICT和PROJECT) ,以及NULL是否是它們專門處理的值。

What to do with null values when modeling and normalizing?見。