数据库中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