在数据库系统中,空值是(什么也没有)。\x0d\解释:\x0d\所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟NULL进行运算
都是
NULL,判断值是否等于NULL,不能简单用=,而要用IS关键字。\x0d\空(NULL)\x0d\值表示数值未知(在实际意义中,如果使用null,就是代表变量值是未知的,比如手机号码设为null,说明不知道手机号码是什么)。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。\x0d\在写入数据的时候,空字符串也是一个确定的值,所以就算定义了NOTNULL也可以被写入。
数据字段被设置为允许为空,
那么默认值是不起作用的
所以,
在插入数据时如果不指定那个字段的值,
那么其值肯定为null
还有,
数据库字段的运算中,
null与任何值运算的结果都是null,
这点要切记
可以使用isnull函数指定在其值为null情况下的取值:
update
tablename
set
num
=
isnull(num,
0)
+
接收到的数
where
id=xxx
也可以使用case
when来进行条件判断取值:
update
tablename
set
num
=
(
case
when
num
is
null
then
0
when
num
>
0
then
num
else
小于等于0情况下的值
end
)
+
接收到的数
where
id=xxxNULL 值表示是未知的值。NULL 值与空的值或零值不同。两个 Null 值永远不会相等。因为每个 NULL 的值都是未知的,两个 Null 值之间、或是一个 NULL 与其他任何值之间的比较都会传回未知的。Null 值通常会指出未知的
资料
、不适用的资料或之后将要加入的资料。例如,客户的称谓在下订单时可能是未知的。
下列是 Null 的相关资讯:
若要在查询中测试 Null 值,请在 WHERE 子句中使用 IS NULL 或 IS NOT NULL。
在 SQL Server Management Studio 程式码编辑器中检视查询结果时,Null 值会在结果集中显示为 (null)。
可藉由在 INSERT 或 UPDATE 陈述式中明确陈述 NULL、在 INSERT 陈述式中空出资料行,或是在使用 ALTER TABLE 陈述式将新的资料行加入至现有的资料表时,将 Null 值插入资料行。
Null 值不得用於分辨资料表的某个资料列,以及资料表的另一个资料列时所需的资讯 (例如,外部索引键或主索引键)。
参照联机帮助
这三者的区别是:数据库中的字段的值0,表示的是数值为
0,即:数字
0(其ASCII码为十进制的
48);null
在字符处理的过程中通常被称作“空字符”,其ASCII码为十进制的
0;空格(SPACE,即我们平时按下的空格键)的
ASCII
码值是十进制的32。
欢迎分享,转载请注明来源:内存溢出