漫谈oracle中的空值null

漫谈oracle中的空值null

ID:14438349

大小:50.50 KB

页数:10页

时间:2018-07-28

漫谈oracle中的空值null_第1页
漫谈oracle中的空值null_第2页
漫谈oracle中的空值null_第3页
漫谈oracle中的空值null_第4页
漫谈oracle中的空值null_第5页
资源描述:

《漫谈oracle中的空值null》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、漫谈oracle中的空值----在数据库中,空值用来表示实际值未知或无意义的情况。在一个表中,如果一行中的某列没有值,那么就称它为空值(NULL)。任何数据类型的列,只要没有使用非空(NOTNULL)或主键(PRIMARYKEY)完整性限制,都可以出现空值。在实际应用中,如果忽略空值的存在,将会造成造成不必要的麻烦。----例如,在下面的雇员表(EMP)中,雇员名(ENAME)为KING的行,因为KING为最高官员(PRESIDENT),他没有主管(MGR),所以其MGR为空值。因为不是所有的雇员都有手续费(COMM),所以列COMM允许有空值,除300、500、1400、0以外

2、的其它各行COMM均为空值。EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO----------------------------------------------------7369SMITHCLERK790217-DEC-80800207499ALLENSALESMAN769820-FEB-811600300307521WARDSALESMAN769822-FEB-811250500307566JONESMANAGER783902-APR-812975207654MARTINSALESMAN769828-SEP-8112501400307698B

3、LAKEMANAGER783901-MAY-812850307782CLARKMANAGER783909-JUN-812450107788SCOTTANALYST756609-DEC-823000207839KINGPRESIDENT17-NOV-815000107844TURNERSALESMAN769808-SEP-8115000307876ADAMSCLERK778812-JAN-831100207900JAMESCLERK769803-DEC-81950307902FORDANALYST756603-DEC-813000207934MILLERCLERK778223-JA

4、N-82130010----本文将以上述EMP表为例,具体讨论一下空值在日常应用中所具有的一些特性。----一、空值的生成及特点----1.空值的生成----如果一列没有非空(NOTNULL)完整性限制,那么其缺省的值为空值,即如果插入一行时未指定该列的值,则其值为空值。X----使用SQL语句INSERT插入行,凡未涉及到的列,其值为空值;涉及到的列,如果其值确实为空值,插入时可以用NULL来表示(对于字符型的列,也可以用''来表示)。----例:插入一行,其EMPNO为1、ENAME为'JIA'、SAL为10000、job和comm为空值。SQL>insertintoemp(

5、empno,ename,job,sal,comm)values(1,'JIA',NULL,1000,NULL);SQL>select*fromempwhereempno=1;EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO-------------------------------------------------------1JIA1000----可以看到新插入的一行,除job和comm为空值外,mgr、hiredate、deptno三列由于插入时未涉及,也为空值。----使用SQL语句UPDATE来修改数据,空值可用NULL来表示(对于字符型的列

6、,也可以用''来表示)。例:SQL>updateempsetename=NULL,sal=NULLwhereempno=1;----2.空值的特点----空值具有以下特点:----*等价于没有任何值。----*与0、空字符串或空格不同。----*在where条件中,Oracle认为结果为NULL的条件为FALSE,带有这样条件的select语句不返回行,并且不返回错误信息。但NULL和FALSE是不同的。----*排序时比其他数据都大。----*空值不能被索引。----二、空值的测试----因为空值表示缺少数据,所以空值和其它值没有可比性,即不能用等于、不等于、大于或小于和其它数

7、值比较,当然也包括空值本身(但是在decode中例外,两个空值被认为是等价)。测试空值只能用比较操作符ISNULL和ISNOTNULL。如果使用带有其它比较操作符的条件表达式,并且其结果依赖于空值,那么其结果必定是NULL。在where条件X中,Oracle认为结果为NULL的条件为FALSE,带有这样条件的select语句不返回行,也不返回错误信息。----例如查询EMP表中MGR为NULL的行:SQL>select*fromempwheremgr='';norowsselec

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。