zoukankan      html  css  js  c++  java
  • 数据库中 ’’ 和 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语句中的赋值语句,其他地方都不可以使用。

  • 相关阅读:
    Selenium+unittest(4)生成html报告带截图
    Selenium+unittest(2)配置模块介绍
    python+requests+unittest(1)接口自动化测试框架结构介绍
    Selenium+unittest(1)web自动化整体框架介绍
    App自动化测试
    robotframework自动化测试框架搭建及问题汇总
    QTP11完美破解小笔记
    Loadrunner11完美破解小笔记
    【转】微信小程序专项测试
    【转】如何测试微信应用号
  • 原文地址:https://www.cnblogs.com/ammy714926/p/4195392.html
Copyright © 2011-2022 走看看