我对数据库中的NULL有疑问。根据我之前的知识,我可以回想一下我的导师告诉我,如果数据库已编入索引并且我们在字段中放置了NULL关键字,那么只要在数据库上进行搜索并且搜索是顺序的,则索引不会保持有效,这会显着影响性能(如果我错了这个概念请纠正它)。我正在使用数据库当前(DB2),我注意到字符串' NULL'而不是关键字NULL。我试过用字符串' NULL'来搜索数据。然后相同的数据与NULL和结果是不同的。
由于
答案 0 :(得分:1)
我想知道String' null'之间的区别。 SQL(DB2)中的vs NULL关键字?
' NULL'不是NULL,它是一个值为' NULL'的字符串。而NULL表示没有值。所以,如果你写了像
这样的条件where column = null //output will be unknown
where column = 'null' //output will contain all rows that have the string 'null'
比另一个更好吗?
这取决于您的要求。但是,当您尝试存储NULL时,它与' NULL'
不同字符串' NULL'影响索引,这可以追溯到概念i 上面提到过?
我不认为' NULL'影响表现。您可以通过您获得的统计数据进行交叉检查。见here:
就索引而言,NULL被视为与其他任何一个一样 值。 (是的,我知道NULL实际上是一个值的缺席,但索引 经理未通过基本的关系概念课程; - )
鉴于您的统计数据,您无法在该数据库上创建唯一索引 列,因为唯一的undex只允许一个NULL。有了 非唯一索引,所有NULL将被收集到一个索引中 密钥(包含大量相关的RID)。