- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 八、 Null、Null与索引 8.2 对null的逻辑运算 由于引入了NULL,在处理逻辑过程中一定要考虑NULL的情况。同样的,数据库中的布尔值的处理,也是需要考虑NULL的情况,这使得布尔值从原来的TRUE、FALSE两个值变成了TRUE、FALSE和NULL三个值。 由于NULL是未知,所以NULL AND NULL、NULL OR NULL、NULL AND TRUE和NULL OR FALSE的值都是未知的,这些的结果仍然是NULL。那么为什么NULL AND FALSE和NULL OR TRUE得到了一个确定的结果呢?仍然从NULL的概念来考虑。NULL是未知的,但是目前NULL的类型是布尔类型,因此NULL只有可能是TRUE或者FALSE中的一个。而根据前面的表格,TRUE AND FALSE和FALSE AND FALSE的结果都是FALSE,也就是说不管NULL的值是TRUE还是FALSE,它与FALSE进行AND的结果一定是FALSE。同样的道理,TRUE AND TRUE和FALSE AND TRUE的结果都是TRUE,所以不管NULL取何值,NULL和TRUE的OR的结果都是TRUE。 对上部分内容的小结如下: * 八、 Null、Null与索引 8.2 对null的逻辑运算 AND操作图表: OR操作图表变为: 7.3 对null的in运算、not in运算与not运算 AND TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE NULL NULL FALSE NULL OR TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE FALSE NULL NULL TRUE NULL NULL * 八、 Null、Null与索引 对null的in与not in运算,举例子来说明: where column IN (‘值1‘, ‘值2’, NULL); 相当于 column = ‘值1’ OR column= ‘值2’ OR column= NULL; 结合下面例子讲述in集合里有null值对返回结果的影响: select * from liwei_test where id in(select id from liwei_sec); 这个where条件的可能值是true或者null,为什么? where column not IN (‘值1‘, ‘值2’, NULL); 相当于 column ‘值1’ and column‘值2’ and columnNULL; 这个where条件的可能值是false或者null,为什么? 对null的not运算: NOT NULL的结果仍然是NULL ,为什么? 这里需要注意:这个NOT NULL是一个布尔操作,要和建表中的NOT NULL约束进行区分。建表中的NOT NULL约束是一个定性的描述,只是表示列中的数据不允许为NULL。而这里的布尔操作,却是在进行求值,要得到对NULL取非的结果,所以仍然得到NULL。 * 八、 Null、Null与索引 8.4 null的||运算 字符串||null=字符串; null||null=null; 8.5 null与索引的关系 B树索引不存储索引列全为空的记录。如果把这句话用在单列索引上,就是B树索引不存储NULL。从B树索引列的个数来划分, B树索引非为单列索引和复合索引,对于单列索引来说很简单,如果一条记录中这个索引字段为空,那么索引不会保存这条记录的信息。但是对于复合索引,由于存在着多个列,如果某一个索引列不为空,那么索引就会包括这条记录,即使其他所有的所有列都是NULL值。 BITMAP索引,是存储NULL值的 。 下面讨论以下情况会不会使用索引: (1) 判断一个列IS NOT NULL (注:这个列上建有一个索引) 因为B树索引本身不存储键值全为NULL的记录,所以通过索引扫描得到的 * 八、 Null、Null与索引 结果一定满足IS NOT NULL的要求。由于索引的存储特性和IS NOT NULL访问本身没有冲突,因此,这种情况下会选择通过索引来得到相应的结果。 (2) 判断一个列IS NULL不会使用索引 (注:这个列上建有一个索引) 这里不讨论BITMAP索引。由于BITMAP索引保存NULL值,所以讨论BITMAP索引没有意义。这里仅讨论B树索引。在上一篇文章里面其实已经讨论过了,B树索引不存储键值全为空的记录。所以对于单列索引而言,
您可能关注的文档
- 第4章 尿液生成和标本采集及处理.ppt
- 第三章2 景观设计基本原理2.ppt
- 财政与税收A_企业所得税.ppt
- !!诗歌鉴赏形象.ppt
- 生物化学 第二章 蛋白质.ppt
- 齒輪模具設計及重點.ppt
- 一对多---总分.ppt
- 2010ACM程序设计竞赛培训1.ppt
- ch11 库存(2).ppt
- 2007年经济评价讲课.ppt
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
最近下载
- 成套简历几何简约个人简历word简历模板.pdf VIP
- (新统编版)语文六年级上册 第三单元 大单元教学设计.docx
- 《盘扣制作》-精选·课件.ppt
- BP85224DA参考设计_ 5V200mA buck/正电压/晶丰明源家电电源.pdf
- 食管裂孔疝诊断治疗指南.doc
- BP85256D参考设计_12V300mA 晶丰明源家电电源.pdf
- 现代服务业劳动(教案) 六年级上册劳动鲁科版.pdf
- 2021年XX市委党校组工干部培训班学习心得体会.doc VIP
- 天津市第二十五中学2024-2025学年高三上学期第一次月考物理试卷.docx VIP
- 中国LNG加气站行业市场现状及发展前景分析-预计2025年市场保有量将超7700座.docx
文档评论(0)