oracle中的null问题(初学)

当字段中有null时,需要区别对待。
说明:
1、等价于没有任何值、是未知数。
2、NULL与0,空字符串,空格,包括NULL与NULL也是不等的。
3、对空值做加、减、乘、除等运算操作,结果仍为空。
4、NULL的处理使用NVL或者NVL2函数,详细见下面链接
http://blog.csdn.net/joyksk/article/details/54316125
5、比较时使用关键字用“is null”和“is not null”。
6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,count(*)中, 用nvl(列名,0)处理后再查。
7、排序时比其他数据都大(索引默认是降序排列,小→大),所以NULL值总是排在最后。

一、NULL的基本概念

NULL的值是没有定义的,未知的,不确定的。
由概念可知

1、当一条记录的某个列为NULL,则表示这个列的值是未知的、是不确定的
2、对NULL的关系运算和一般运算都是结果NULL
关系运算符
关系运算符
一般运算符
一般运算符
所以,很多时候除了IS NULL、IS NOT NULL以外的操作,对NULL的任何操作的结果还是NULL。
3、对NULL进行逻辑运算结果的讨论
逻辑运算符
逻辑运算符

核心:NULL是未知的,但是目前NULL的类型是布尔类型,因此NULL只有可能是TRUE或者FALSE中的一个。
结果:
and:
false and false = false  false and true = false  false and null = false
true and false = false  true and true = true  true and null = null
null and false = false  null and true = null  null and null = null
or:
false or false = false  false or true = true  false or null = null
true or false = true  true or true = true  true or null = true
null or false = null  null or true = true  null or null = null
not:
not null = null
注意:这个NOT NULL是一个布尔操作,要和SQL中的NOT NULL约束进行区分。NOT NULL约束是一个定性的描述,只是表示列中的数据不允许为NULL。而这里的布尔操作,却是在进行求值,要得到对NULL取非的结果,所以仍然得到NULL。

二、NULL的其他问题

1、NULL的字符串表示格式”
2、NULL和索引的关系
3、NULL对SQL使用索引的影响
4、SQL和PLSQL中处理NULL的一些问题
5、NULL在Oracle中的默认数据类型是什么
6、CHECK约束中的NULL条件
http://blog.csdn.net/zs064811/article/details/51595666

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值