oracle null 赋值,java和oracle 中NULL的使用

java和oracle 中NULL的使用

知识背景:

1、java中null 的定义及作用

(1)null是代表不确定的对象

Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。比如:int a = null;是错误的。Ojbect o = null 是正确的。

(2) null本身不是对象,也不是Objcet的实例。null本身虽然能代表一个不确定的对象,但就null本身来说,它不是对象,也不知道什么类型,也不是http://www.doczj.com/doc/6c44ce27192e45361066f56c.htmlng.Object的实例。在定义变量的时候,如果引用类型变量定义后没有给变量赋值,则Java在运行时会自动给变量赋值NULL。

(3)null的其他作用:a、判断一个引用类型数据是否null。用==来判断;b、释放内存,让一个非null的引用类型变量指向null。这样这个对象就不再被任何对象应用了。等待JVM 垃圾回收机制去回。

2、oracle中null的定义及作用

(1)NULL是数据库中特有的数据类型,当一条记录的某个列为NULL,则表示这个列的值是未知的、是不确定的。既然是未知的,就有无数种的可能性。因此,NULL并不是一个确定的值。

(2)判断一个字段是否为NULL,应该用IS NULL或IS NOT NULL,而不能用‘=’。对NULL 的判断只能定性,既是不是NULL(IS NULL/IS NOT NULL),而不能定值。简单的说,由于NULL存在着无数的可能,因此两个NULL不是相等的关系,同样也不能说两个NULL 就不相等,或者比较两个NULL的大小,这些操作都是没有意义,得不到一个确切的答案的。因此,对NULL的=、!=、>、=、<=等操作的结果都是未知的,也就算说,这些操作的结果仍然是NULL。

(3)ORACLE的null 有以下特点:

(a)oracle中null与0,空字符串,空格,包括null与null也是不等的;

(b) oracle中对null做算术运算结果仍然为null;

(c) 处理方法有nvl函数,比较方法是is null或者is not null;

(d) null不能被索引,比如select count(null) from dual的查询结果是0;

(e) null排序时比其他数据都大(索引默认是降序排列,小→大),所以NULL值总是排在最后。

你可能感兴趣的:(oracle,null,赋值)