SQL 中 NULL与空值('')

在用select语句查询表中NOT NULL字段时,居然出现了空值(‘’),借此机会将两者的区别进行一次整理。

  【NULL】

       <解释>     

             NULL表示数据表中字段的缺省值(数值未知),即没有赋值的状态。

             NULL与任何值进行计算结果也是NULL。

             在WHERE条件中,NULL结果会被解释成FALSE。

   <产生>

             a. 使用INSERT或UPDATE语句对表中数据进行添加或更新时,显示指定某字段为NULL。

             b. 使用INSERT语句添加数据时,不指定某字段值。

             c. 使用SELCET语句对表进行查询时,查询的指段含有条件运算(CASE WHEN),且没有指定ESLE,

                 如果某值走到ELSE分支,结果将会出现NULL。

             d. 用外关联进行查询时,如果主表关联字段值在副表中不存在,且查询字段中含副表字段时,

                 该字段值将显示为NULL。

             e. 用ALTER TABLE语句在已知表中添加新字段。

       <判断>

           判断某字段是否为NULL,可以用IS NULL 或 IS NOT NULL, 不能用 <> 或 != 或 =

       <相关函数>

              NVL(exp1, exp2)                   -- 如果exp1为NULL,则返回exp2, 否则返回exp1

                                                               --exp1和exp2必须类型相同

 

             NVL2(exp1,exp2,exp3)          --如果exp1为NULL,则返回exp3, 否则返回exp2

                                                                --exp2和exp3如果类型不同,exp3会自动转换成exp2类型

  【空值('')】

        <解释>

           空值('')表示长度为0的字符串。

        <产生>

           用INSERT或UPDATE可以显示添加或更新某字段值为空值('')。

         <判断>

             可以用 <> 或 != 或 =

            

猜你喜欢

转载自cherryl-zhao.iteye.com/blog/2105818