ORACLE NULL详解.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ORACLE NULL详解

ORACLE NULL详解问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零。?ORACLE允许任何一种数据类型的字段为空,除了以下两种情况:1、主键字段(primary key),2、定义时已经加了NOT NULL限制条件的字段说明:1、等价于没有任何值、是未知数。2、NULL与0、空字符串、空格都不同。3、对空值做加、减、乘、除等运算操作,结果仍为空。4、NULL的处理使用NVL函数。5、比较时使用关键字用“is null”和“is not null”。6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,count(*)中,用nvl(列名,0)处理后再查。7、排序时比其他数据都大(索引默认是降序排列,小→大),所以NULL值总是排在最后。?使用方法:SQL select 1 from dual where null=null;没有查到记录SQL select 1 from dual where null=;没有查到记录SQL select 1 from dual where =;没有查到记录SQL select 1 from dual where null is null;??????? 1---------??????? 1SQL select 1 from dual where nvl(null,0)=nvl(null,0);??????? 1---------??????? 1?对空值做加、减、乘、除等运算操作,结果仍为空。SQL select 1+null from dual;SQL select 1-null from dual;SQL select 1*null from dual;SQL select 1/null from dual;以上四条语句均查询到一个记录.注:这个记录就是SQL语句中的那个null??设置某些列为空值update table1 set 列1=NULL where 列1 is not null;现有一个商品销售表sale,表结构为:month  char(6)  --月份sellnumber(10,2) --月销售金额create table sale (month char(6),sell number);insert into sale values(200001,1000);insert into sale values(200002,1100);insert into sale values(200003,1200);insert into sale values(200004,1300);insert into sale values(200005,1400);insert into sale values(200006,1500);insert into sale values(200007,1600);insert into sale values(200101,1100);insert into sale values(200202,1200);insert into sale values(200301,1300);insert into sale values(200008,1000);insert into sale(month) values(200009);(注意:这条记录的sell值为空)commit;共输入12条记录?SQL select * from sale where sell like %;MONTH?????? SELL------ ---------200001????? 1000200002????? 1100200003????? 1200200004????? 1300200005????? 1400200006????? 1500200007????? 1600200101????? 1100200202????? 1200200301????? 1300200008????? 1000??????查询到11记录.??????结果说明:查询结果说明此SQL语句查询不出列值为NULL的字段,此时需对字段为NULL的情况另外处理。SQL select * from sale where sell like % or sell is null;SQL select * from sale where nvl(sell,0) like %;??????MONTH?????? SELL------ ---------200001????? 1000200002????? 1100200003????? 1200200004????? 130020000

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档