SQL Server NULL分析和理解

1、null的理解
null在Sql Server数据库中是“不存在”,是“空”,但并不是空字符的意思;null在了解不深,使用不当时,很可能导致一些错误。
 
2、null的特殊处理
为避免一些错误,可以从两方面处理
1.必要时将某些字段设置不允许为空;这样就能避免null引起的问题;
2.某些字段允许为null时,在程序中控制,默认写入空字符串;
3.如果没必要设置为空,但又需要比较时,必须用is null;而不能用 = null。
 
3、结论:
  (1)null不等于null ,但null是null!判断的时候用 is null 或 is not null
  (2)null 判断的时候用"is" ,赋值的时候用"="
  (3)字段能不设置为null,就不要设置为空
 
4、实例说明:
先写一个简单的例子
declare @table table( id int ,col varchar( 20))
insert into @table
select 1, 'bag' union all
select 2,   null union all
select 3, 'ball'
select * from @table where col<>null
select * from @table where col =null
/*
两句话的结果一样:
id          col
----------- --------------------
都是没有数据   (因为null <>null )
*/
 
然后我们用下面的语句来测试一下
if(null=null)
select 'null=null' as result_a
else
select 'null<>null' as result_a
 
if(null is null)
select 'null is null' as result_b
else
select 'null is not null' as result_b

/*

result_a
----------
null<>null
 
result_b
------------
null is null
*/
结果说明了null不等于null ,但null是null!
 
然后我们在赋值的时候 ,就不一样了
举个例子说明一下 :
--测试
declare @i int
set @i =3;
set @i =null;
select @i as '@i';

/*结果

@i
-----------
NULL
*/
 
posted @ 2020-10-10 08:55  人生黑色  阅读(1047)  评论(0)    收藏  举报