mysql null 和 空值区别_你知道mysql中空值和null值的区别吗

前言

最近发现带的小伙伴写sql对于空值的判断方法不正确,导致程序里面的数据产生错误,在此进行一下整理,方便大家以后正确的判断空值。以下带来示例给大家进行讲解。

建表

create table test (cola varchar(10) not null,colb varchar(10) null);

向test表中插入数据

插入cola为null的数据

insert into test values (null,1);

此时会报错,因为cola列不能为null。

插入colb为null的数据

insert into test values (1,null);

发现插入成功。

54a9ebbd8a02a7972d72369ed071bb89.png

插入都为空的数据

insert into test values ('','');

74a985a82dbdda4af0384d8e00f75c19.png

插入cola为空的数据

insert into test values ('',null);

0b8de9175c5bd7cb8482b28ccbab0e78.png

发现向cola一列插入空值成功,而colb列既可以插入空值,也可以插入null值。

总结一下,定义为not null的字段只能插入空值,不能插入null值,而null字段可以插入空值,也可以插入null值。

插入都不为空的数据

insert into test values (1,2);

开始查询

c6190b38d2ddc549587a875bac0d497c.png

d25324f9af7d88235a085b48a960d4da.png

c2b10f0c4e8a134d6bcaff539ef0c215.png

a8e373e28e0d041fee45439bfa4a017a.png

可以发现 is not null 只会过滤为null值的列,而<>会同时过滤空值和null值,所以要根据实际情况选择过滤方式。

另外,判断null值只能用 is null 或 is not null ,不能用 = 或 <>。

特别注意

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

118b468126a0d9685441be860644b2f5.png

2、判断null 用is null 或者 is not null,sql 语句函数中可以使用ifnull()函数来进行处理,判断空字符用 = 或者 <> 来进行处理

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

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

5、当使用order by时,首先呈现null值。如果你用desc以降序排序,null值最后显示。当使用group by时,所有的null值被认为是相等的,故只显示一行。

总结

到此这篇关于mysql中空值和null值的区别的文章就介绍到这了,更多相关mysql空值和null值的区别内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值