数据库如何处理null 值

数据库中null 值的含义:

在列中的值未知或缺失时,在关系数据库中使用空值。 空既不是空字符串(对于 character 或 datetime 数据类型),也不是零值(对于 numeric 数据类型)

null是一个常量,仅在数值和字符串类型的列中有意义,代表的是没有意义或者是不确定的值。

例如,学生选了课程,当成绩没有出来时grade字段的值应该为空;或者工资表中一个行政人员在课时补贴一栏的值为null,因为它不可能有课时补贴的收入


数据库中SQL处理null值:

1is null的结果为true

2用ORDER BY子句对查询结果按成绩排序:

若按升序排,成绩为空值的元组将最后显示,

若按降序排,成绩为空值的元组将最先显示。

3空值不能被索引,所以查询时有些符合条件的数据可能查不出来,count(*)中,用nvl(列名,0)处理后再查。 

4ANSI SQL-92 标准不支持 WHERE 子句中的 columnName = NULL。ANSI SQL-92 标准不支持 WHERE 子句中的 columnName = NULL。

oracle中处理null的相关博客:http://www.iteye.com/topic/454271


数据库中与null值的相关运算

1. 为空被视作未知,所以,对两个空值进行彼此比较,其结果不被视为相等。 在使用算术运算符的表达式中,如果任何操作数为空,结果也为空。

2.如果任何操作数或参数为空,则所有算术运算符(+、-、*、/、%)、位运算符(~、&、|)和大多数函数都返回空,只有属性 IsNull 除外。

3.逻辑运算

逻辑与(AND)算法

在and 逻辑表达式中,只要有F (假)其结果就为F,如果没有F,在AND逻辑表达式中有NULL的其结果就为Null,只有当两个条件都为T时,其结果才为T。

逻辑或(OR) 算法

在OR 逻辑表达式中,只要有T(真)其结果就为T,如果没有T,在OR 逻辑表达式中

有NULL的其结果就为NULL,只有当两个条件都为F时,其结果才为F。

逻辑非(NOT)算法

NOT T =F   NOT F=T    NOT NULL =NULL


数据库中null值转换

NVL空值转换函数。

因为与Null进行的算术运算均为NULL,所以有此函数。

NVL函数用于把一空值(NULL)转换成某一实际的值,格式如下:

NVL(表达式1,表达式2)

如果表达式1为空值(NULL),NVL返回值为表达式2的值,否则返回表达式1的值。表达式1和表达式2可以为数字型、字符型或日期型,但二者必须一致。例如:

对数字型: NVL(comm,0)

对字符型:NVL (TO_CHAR(comm),’NO Comment’)

对日期型:NVL(hiredate,’31-DEC-99’)

有经验的开发者经常用此函数来避免因空值(NULL )产生的错误。


其他null的相关知识:http://blog.csdn.net/perfect_db/article/details/11974737



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值