WEB开发网
开发学院数据库Oracle Oracle数据库查询十个小技巧(二) 阅读

Oracle数据库查询十个小技巧(二)

 2008-10-22 12:56:11 来源:WEB开发网   
核心提示:第六个技巧:合理处理NULL字段, Null字段在数据库中是一个比较特殊的字段,Oracle数据库查询十个小技巧(二),Null字段表示未知值或者说缺少数据,注意若某个字段的值为Null,则无论加减乘除,最后其结果都返回的施NULL值,则这个字段即不是空格,也不是0

第六个技巧:合理处理NULL字段。

Null字段在数据库中是一个比较特殊的字段。Null字段表示未知值或者说缺少数据,注意若某个字段的值为Null,则这个字段即不是空格,也不是0。当插入记录的时候,若这个字段没有被赋值,而且也没有默认值的话,则这个字段系统默认给他的值就是“Null”。

由于这个值比较特殊,在查询的时候,及时经验丰富的数据库管理员,有时候在处理起来的时候,也会发生错误。为此,笔者在这里总结一些,在数据库查询的时候,关于这个空字段查询的一些需要注意的地方。

一是要注意NULL字段的数字运算问题。

如现在在一个薪资管理系统中,有一张薪资表,其中有基本工资与加班工资两个字段。若某个用户的基本工资为2000,而其加班工资没有。在输入这条记录的时候,由于加班工资这个字段中,没有输入数据,而且在数据库设计的时候,也没有个这个字段设置0的默认值。所以,当这条记录保存的时候,数据库系统会给这个字段自动赋值,这个字段的值就为NULL。

若我们用Select语句查询这条记录的时候,其加班工资这个字段显示的数据是空的。看起来好像是空格,而实际上其存储的不是空格。此时,我们若利用查询语句想知道,这个员工的总的工资(即加班工资加上基本工资)为多少的时候会有什么结果呢?

我们可以利用Select 员工姓名,基本工资,加班工资,基本工资+加班工资 as 总工资 FROM 员工薪资表; 我们可以通过这条语句来查询这个员工总的工资是多少。但是,这条语句会查询出我们想要的结果吗?我们执行一下这条语句,结果我们会发现,得出的结果跟我们想象的大相径庭。最后显示的总工资一栏中,为空格。

原来,Oracle数据库设计中,若一个NULL字段跟其他字段进行四则运算时,其显示的结果都为空。所以,若一个字段为NUU,则无论加减乘除,最后其结果都返回的施NULL值。这显然跟我们想象的不同。

1 2 3  下一页

Tags:Oracle 数据库 查询

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接