数据库中’’和NULL的区别
空值是指零长度的字符串null不是对象,''是对象
从'',你就可以知道这是⼀个字符串类型的数据,是⼀个长度为零的字符串。
从NULL,你只能知道这⾥没有赋过值,是空的,他不属于任何数据类型。
我们在数据库实际使⽤中,⼀般把字符串型变量默认为'',数值型变量默认为0,这样才能保正在进⾏逻辑运算时不产⽣类型不匹配的错误。SQL SERVER中函数为:ISNULL(变量,值),
对于整型变量,这样去参加运算:
SET @VAR=1+ISNULL(整型变量,0)
对于字符型变量,这样去参加运算:
SET @VAR=ISNULL(字符型变量,'')
ü  null不是值,它表⽰数值未知或者不确定
ü  null是⼀个属性 ,表⽰其中⽆内容,⽽空是表⽰数值为空,但有默认值,可能为0.
ü  NULL的判断不能简单的⽤=或!= 只能使⽤IS (NOT) NULL来判断.所以 is not null 和!=null的结果是完全不同的.虽然!=null编译不会报错,但是没有⼈这样来判断某个字段为null
ü  在数据库中,空值⽤来表⽰实际值未知或⽆意义的情况。因为空值表⽰缺少数据,所以空值和其它值没有可⽐性,即不能⽤等于、不等于、⼤于或⼩于和其它数值⽐较,当然也包括空值本⾝(但是在decode中例外,两个空值被认为是等价)。测试空值只能⽤⽐较操作符IS NULL 和IS NOT NULL。如果使⽤带有其它⽐较操作符的条件表达式,并且其结果依赖于空值,那么其结果必定是NULL。在where条件中,Oracle认为结果为NULL的条件为FALSE,带有这样条件的select语句不返回⾏,也不返回错误信息。
ü  新增或修改记录某字段为‘’时,到数据库中此字段就是null(数据库的缺省值也是null)查询时,不能⽤的⽅式,只能 is null或is not null ü  三者的区别就是:
isnull是⼀种类型测试,测试是否为空值(null)类型。
isEmpty是⼀种值测试,测试是否是空值。但这个不同语⾔中采⽤的⽅法不同。
=""是串测试,测试值是否为空值。
ü  创建数据库的时候,对某个字段定义了 NOT NULL,但是,在写⼊数据的时候,空字符串''也能写⼊成功:
空 (NULL) 值表⽰数值未知。空值不同于空⽩或零值。没有两个相等的空值。⽐较两个空值或将空值与任何其它数值相⽐均返回未知,这是因为每个空值均为未知。
在写⼊数据的时候,空字符串'' 也是⼀个确定的值,所以就算你定义了 NOT NULL 也可以被写⼊。
ü  在定义中说,空值不与任何值相等。因此不能使⽤ = null 做判断。在Sql语句中,唯⼀可以使⽤ = null的就是update语句中的赋值语句,其他地⽅都不可以使⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。