字符串' null' vs NULL关键字SQL

时间:2015-11-20 03:15:52

标签: sql db2

我对数据库中的NULL有疑问。根据我之前的知识,我可以回想一下我的导师告诉我,如果数据库已编入索引并且我们在字段中放置了NULL关键字,那么只要在数据库上进行搜索并且搜索是顺序的,则索引不会保持有效,这会显着影响性能(如果我错了这个概念请纠正它)。我正在使用数据库当前(DB2),我注意到字符串' NULL'而不是关键字NULL。我试过用字符串' NULL'来搜索数据。然后相同的数据与NULL和结果是不同的。

  1. 我想知道String' null'之间的区别。 vs NULL SQL(DB2)中的关键字?
  2. 比另一个更好?
  3. 字符串' NULL'影响索引,这可以追溯到我提到的概念     以上?
  4. 由于

1 个答案:

答案 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)。