美文网首页
Oracle |  空值null和空字符串的区别

Oracle |  空值null和空字符串的区别

作者: Root_123 | 来源:发表于2018-07-19 10:02 被阅读25次

Mysql中空字符<''>和空值的区别,一直都知道mysql中空字符串(”)和空值(null)之间有区别,但是没好好研究过。直到项目上,这两个概念被我搞混了之后才想起来研究一下。

根据网上的说法,空字符串(”)是不占用空间,而空值(null)是占用空间。(这里我不太明白,因为我的理解是,字符串都会有一个结束符,这个结束符不会占用空间吗??)。

虽然有不明白的地方,但是不影响这篇文章对这两个值的分析。

为了分析区别,这里新建一张表 test_null,并插入4行数据。

CREATETABLEtest_null (

    id int,

    value_1 varchar(128),

    value_2 varchar(128) notnull

)

这里需要说一下,将字段设置为 not null之后是可以插入空字符(”)的。影响的只是不能插入空值(null)。

首先比较一下,空字符(”)和空值(null)查询方式的不同。

由此可见,null 和 ”的查询方式不同。而且比较字符 ‘=’’>’ ‘<’ ‘<>’是不能用于查询null。如果需要查询空值(null),需使用is null 和is not null。

第二种比较,参与运算。

由此可见,空值(null)是不能参与任何计算,因为空值参与任何计算都为空。所以,当程序业务中存在计算的时候,需要特别注意。如果非要参与计算,需使用ifnull函数,将null转换为”才能正常计算。

第三种比较,统计数量

由此可见,当统计数量的时候。空值(null)并不会被当成有效值去统计。同理,sum()求和的时候,null也不会被统计进来,这样就能理解,为什么null计算的时候结果为空,而sum()求和的时候结果正常了。

以上对比,算得上是程序中经常会遇到但又不容易注意的问题。

网络上,针对这两个值。有一种说法会比较好理解。在存电话号码字段中,空值(null)代表你没有电话,而空字符串(”)则代表,你有电话但是没有填写。或者理解,填写了又删除掉。

还有一种理解方式。null是尚未定义的值,表示未知。而”,确定为一个空字符串。所以未知的值,无法进行各种比较(大于,小于,等于),也不能用于计算(加减乘除)。

我的理解是,不考虑是否占用内存。null代表什么都没有,”代表的就是一个空白的字符串。所以,null什么都没有就不能用于比较。

无论怎么理解,都需要记住这两个值的区别。避免在项目中碰到错误。

相关文章

  • Oracle |  空值null和空字符串的区别

    Mysql中空字符<''>和空值的区别,一直都知道mysql中空字符串(”)和空值(null)之间有区别,但是没好...

  • null与异常,空字符串

    null与空字符串有本质上的区别: null是不存在,而空字符串是存在,但值为空 常见的异常: 1.空指针...

  • 面试总结

    1.undefined和null的区别 null: Null类型,代表“空值”,代表一个空对象指针,使用typeo...

  • day day up

    1、null和undefined的区别 null表示一个空的值,和0以及空字符串' '不同,0是一个数值,‘ ’表...

  • JS考核将要问题摘要

    undefined和null的区别? Null类型,代表“空值”,代表一个空对象指针,使用typeof运算得到 “...

  • JavaScript中Null和Undefined的区别

    JavaScript中Null和Undefined的区别 Null: null是js中的关键字,表示空值,null...

  • 简化代码之Java

    1. 去除数组中的空值和null值,并返回新的数组 2. 拼接字符串,若字符串不为空则以空格隔开,为空则忽略(比如...

  • 无标题文章

    null和undefined到底有什么区别? null 表示一个对象是“没有值”的值,也就是值为“空...

  • java初识

    java的数据类型 字面量 整数 浮点数 字符和字符串 boolean 空值 空值和空字符串的区别 转义序列 变量...

  • 空值操作

    oracle中空值操作 1)、null:空值,是数据库中重要的角色。①、null不是数据类型,但是任何类型的数据。...

网友评论

      本文标题:Oracle |  空值null和空字符串的区别

      本文链接:https://www.haomeiwen.com/subject/epvzpftx.html