您将未知真值的表示形式与数据库中存储的真实空值混淆了。
SQL 定义了三个布尔值。即:真、假、未知。后者由 null 表示(但它不是 null)。
现在,真正的 SQL null 表示存在但只是缺失的值。例如:“我们还没有得到安妮的出生日期”;我们知道她有一个,但我们只是还没有记录在案。这对应于 Codd 的 A 值。
Codd 的 I 值对应于以后无法用实际值替换的值,因为该值实际上并不存在。 I 值当前未在 SQL 中表示。
因此,当您意识到空值仅在布尔逻辑中用于表示未知值时,很明显它们与 A 值或 I 值无关;他们生活在不同的域中。 4 值逻辑(具有 A 和 I 值)没有任何意义,因为它们并不真正代表任何布尔值。