--null的原理
--oracle一直将null和空字符串’’<长度为0>同等对待<如’’ is null是true,’’=null为false,如果声明a varchar2:=’’,那么a is null为true,a=’’为false> --1.null的运算
--算术表达式和null 运算总为null,实际上所有的操作符除了||连接操作符外,只要有一个操作符为null,则结果为null。
--------------------------------null操作符运算------------------------------
--算术操作,只要有一个操作数为null,则结果为null
select null+10,null*10,null-10,null/10 from dual;
--连接操作符||除外,null相当于空字符串
select null||'abc', ''||'abc' from dual;--abc ,abc --2.null在函数中的使用
create table nulltest as
select null a from dual
union all
select 1 from dual
union all
select 2 from dual;
alter table test2 add constraints uk_nulltest_id primary key(city); --null在组函数中的使用,sum,avg,min,max都会忽略null值
select sum(a) from nulltest; --
select avg(a) from nulltest; --1.5
select min(a) from nulltest; --
select max(a) from nulltest; -- --null在count函数中
--(1)如果指定count(*)或count(1)则不会忽略null(count(*)和count(1)效果一样,效率也没有什么差别)
--(2)如果是count(列名)则会忽略null
select count(*) from nulltest; --3 包含了null的计算
select count(1) from nulltest; --3 包含了null的计算
select count(a) from nulltest; --2 忽略了null
select count(rowid) from nulltest; -- --3.null在条件中的使用
--如果一个操作数含有null,只能通过is null 和is not null 来比较才能返回true 或false,否则返回的结果只能是unkown. --4.null和索引、执行计划的关系(null在查询优化中的使用)
--如果是b*tree索引,单列索引,索引列上有null值,则is null不走索引,当然is not null可能走索引,看cbo计划.
--另外如果要走索引,可以使用bitmap索引或者使用复合索引,确保另一列上无null。

深入理解null的原理的更多相关文章

  1. Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理

    Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理 作者:宋宸宁(20135315) 一.实验过程 图1 编写songchenning5315.c文件 图2 将c文件汇编成32位机器语言 ...

  2. SLAM+语音机器人DIY系列:(二)ROS入门——7.理解tf的原理

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  3. Linux内核设计(第一周)——从汇编语言出发理解计算机工作原理

    Linux内核设计(第一周)——从汇编语言出发理解计算机工作原理 计算机工作原理 汇编指令 C语言代码汇编分析 by苏正生 原创作品转载请注明出处 <Linux内核分析>MOOC课程htt ...

  4. python模块之HTMLParser之穆雪峰的案例(理解其用法原理)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser之穆雪峰的案例(理解其用法原理) #http://www.cnblog ...

  5. 深入理解redis复制原理

    原文:深入理解redis复制原理 1.复制过程 2.数据间的同步 3.全量复制 4.部分复制 5.心跳 6.异步复制 1.复制过程 从节点执行 slaveof 命令. 从节点只是保存了 slaveof ...

  6. 理解HTTP session原理及应用

    转自:http://www.2cto.com/kf/201206/135471.html 一.术语session在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣 ...

  7. 深入理解JavaScript Hijacking原理

    最近在整理关于JavaScript代码安全方面的资料,在查关于JavaScript Hijacking的资料时,发现关于它的中文资料很少,故特意整理一下. 一.JavaScript Hijacking ...

  8. [三]java8 函数式编程Stream 概念深入理解 Stream 运行原理 Stream设计思路

    Stream的概念定义   官方文档是永远的圣经~     表格内容来自https://docs.oracle.com/javase/8/docs/api/   Package java.util.s ...

  9. 理解HashMap的原理

    HashMap内部数据结构        HashMap内部采用数组和链表结合的方式来存取数据(见下图).这种方式有什么好处呢? 我们知道,数组操作对于检索是O(1)的,能够很快的根据数组的下标定位对 ...

随机推荐

  1. python Django注册页面显示头像

    python Django注册页面显示头像(views) def register(request): ''' 注册 :param request: :return: ''' if request.m ...

  2. Java-NIO(九):管道 (Pipe)

    Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 代码使用示例: @Test public vo ...

  3. lvs 负载均衡 NAT模式

    1.原理 基于NAT机制实现.当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,同时将报文的目标端口也改成选定的realserve ...

  4. Tab标签js切换高效率写法

    原来的传统写法: function tabit(id,cid) { for(var i=0; i<10; i++){ gi(["tab"+i]).className = &q ...

  5. C#标记 [已弃用] 的方法

    [Obsolete]//标记该方法已弃用 /// <summary> /// 你应该调用本类的 OpenMessageBox 方法 /// </summary> public ...

  6. [BJOI 2010]次小生成树Tree

    Description 小 C 最近学了很多最小生成树的算法,Prim 算法.Kurskal 算法.消圈算法等等. 正当小 C 洋洋得意之时,小 P 又来泼小 C 冷水了.小 P 说,让小 C 求出一 ...

  7. [SDOI2011]黑白棋

    Description 小A和小B又想到了一个新的游戏. 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色. 最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色不同. 小 ...

  8. [SHOI2016]黑暗前的幻想乡

    Description 四年一度的幻想乡大选开始了,最近幻想乡最大的问题是很多来历不明的妖 怪涌入了幻想乡,扰乱了幻想乡昔日的秩序.但是幻想乡的建制派妖怪(人类) 博丽灵梦和八云紫等人整日高谈所有妖怪 ...

  9. ●codeforces 528D Fuzzy Search

    题链: http://codeforces.com/problemset/problem/528/D 题解: FFT 先解释一下题意: 给出两个字符串(只含'A','T','C','G'四种字符),一 ...

  10. 【HNOI2017】大佬

    题目描述 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场就能让周围的人吓得瑟瑟发抖,不敢言语. 你作为一个 OIER,面对这样的事情非常不开心,于 ...