--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; --3
select avg(a) from nulltest; --1.5
select min(a) from nulltest; --1
select max(a) from nulltest; --2--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--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。

转载于:https://www.cnblogs.com/huangbiquan/p/8001743.html

深入理解null的原理相关推荐

  1. 理解mysql 底层原理

    理解mysql 底层原理 mysql 关系数据库的一种,开源免费,支持百万级的存储性能.性能稳定.社区活跃 鉴于 本人半路出家,对于一些原理的东西都不怎么了解,正好 无所事事的情况下,翻博客,吸取知识 ...

  2. 通俗易懂理解GBDT算法原理-转

    GBDT算法深入解析 https://www.zybuluo.com/yxd/note/611571 通俗易懂理解GBDT算法原理 https://blog.csdn.net/qq_36696494/ ...

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

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

  4. 赠书:深入理解MySQL主从原理

    根据经验,想要快速学习一门技术有3种方式. 第一种方式是通过代码来理解它的实现,反推它的逻辑. 这种方式的难度很大,而且起点相对高,能够沉浸其中的人非常少,过程相对来说是苦闷的,但如果能够沉下心来看代 ...

  5. 不同类的方法 事务问题_深入理解 Spring 事务原理

    Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获 ...

  6. Java 多线程 —— 深入理解 volatile 的原理以及应用

    转载自  Java 多线程 -- 深入理解 volatile 的原理以及应用 推荐阅读:<java 多线程-线程怎么来的> 这一篇主要讲解一下volatile的原理以及应用,想必看完这一篇 ...

  7. 面试精讲之面试考点及大厂真题 - 分布式专栏 05 公司使用什么RPC框架,聊聊你理解的RPC原理

    05 公司使用什么RPC框架,聊聊你理解的RPC原理 引言 前些年我们在做一个规模不大的系统的时候,也就是单体架构,一台服务器部署上一个应用和数据库也就够了.但是现代化互联网公司业务逐渐扩大,服务逐渐 ...

  8. 深入理解K8S网络原理下

    承接上文深入理解K8S网络原理上 Service 应用是K8s集群内部可见的而我们发布的应用需要外网甚至公网可以访问K8s如何将内部服务暴露出去? 四层网络只有Node节点网络可以对外通讯现在问题是第 ...

  9. 深入理解redis复制原理

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

最新文章

  1. Spring 框架中的单例Beans 是线程安全的么?
  2. 无状态Spring安全性第2部分:无状态身份验证
  3. 前端学习(2421):项目反馈
  4. PerlTidy的配置项
  5. delaunay三角网构建
  6. xcode ios 怎么导入p12证书
  7. 蓝桥杯历年省赛真题汇总及题目详解
  8. mumu 模拟器连不上adb
  9. 360浏览器下载|360安全浏览器下载
  10. C#小知识之中英文转换、去空格
  11. CDO解析eml文件为html,C# 读取eml文件 例子(解析eml文件)
  12. 迷一般的存在:0x7c00
  13. 如何利用小红书进行产品营销?小红书营销技巧有哪些?
  14. 什么是固态继电器(SSR)?
  15. 如何制作一份优秀的简历?
  16. 如何在浏览器中点击复制微信号并且跳转到微信
  17. Mac电脑的锁屏界面如何自定义锁屏消息?
  18. 基于NRC词典的离散情感分析(含有程度词和否定词)
  19. Ubuntu下使用Thunderbird收发QQ邮箱
  20. 11 年艺术生转行,逆袭成蚂蚁金服程序员,出版 TensorFlow 教材!

热门文章

  1. zabbix查看mysql同步_Zabbix 检测Mysql数据库的主从同步
  2. php配合jade使用,前端自动化系列(四)之jade预编译html
  3. 后端技术:消息队列MQ/JMS/Kafka相关知识介绍
  4. 数据结构基础:图结构的学习笔记
  5. 程序员的二十句励志名言,看看你最喜欢哪句?
  6. sql语句提高数据库查询效率
  7. sqlhelper中事务的简单用法(初学者)
  8. websocket 西部数码php_网页实时聊天之PHP实现websocket
  9. bmp 像素点 php,读取BMP图像每一像素点RGB数据 | 学步园
  10. html5做文字颜色渐变代码,神奇!js+CSS+DIV实现文字颜色渐变效果_javascript技巧