mysql null 和 空字符串 区别

区别

1.在进行count()统计某列的记录数的时候,如果采用的NULL值,系统会自动忽略掉,但是空值是会进行统计到其中的。

2.判断NULL 用IS NULL 或者 IS NOT NULLSQL语句函数中可以使用ifnull()函数来进行处理,判断空字符用=''或者 <>''来进行处理

3.对于MySQL特殊的注意事项,对于timestamp数据类型,如果往这个数据类型插入的列插入NULL值,则出现的值是当前系统时间。插入空值,则会出现 0000-00-00 00:00:00

4.对于空值的判断到底是使用is null 还是='' 要根据实际情况来进行区分。

 

实例

新建一张表 test_null,并插入4行数据。

CREATE TABLE test_null (
	id int,
	value_1 varchar(128),
	value_2 varchar(128) not null
)


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


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


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


第二种比较,参与运算。


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


第三种比较,统计数量


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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值