从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章给大家分享的是有关MySQL的空值和NULL的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
成都创新互联主营六合网站建设的网络公司,主营网站建设方案,app软件定制开发,六合h5微信小程序搭建,六合网站营销推广欢迎六合等地区企业咨询
从本质上区别:
1、空值不占空间
2、null值占空间
通俗的讲:
空值就像是一个真空转态杯子,什么都没有,而null值就是一个装满空气的杯子,虽然看起来都是一样的,但是有着本质的区别。
(推荐课程:MySQL教程)
例子:
创建一个test表,colA是不可以存放null值的,colB是能存放null值的。
CREATE TABLE `test` ( `colA` varchar(255) NOT NULL, `colB` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入一个null值试试,会发生什么情况?
INSERT INTO `test`(`colA`, `colB`) VALUES (NULL, NULL);
//出现报错,原因是colA是不能插入null值。
那么如果两个字段同时插入空值,会怎么样。
INSERT INTO `test`(`colA`, `colB`) VALUES ('', '');
插入成功,说明字段即使设置为null值的时候,是可以插入空值的
---------------------------------------------------------------查询---------------------------------------------------------
现在表里有三条数据
接下来我们使用 is not null 和 <> 检索数据表里的数据
1、使用IS NOT NULL 的查询
1 SELECT * FROM `test` WHERE colA IS NOT NULL
1 SELECT * FROM `test` WHERE colB IS NOT NULL
结论:使用 IS NOT NULL 查询不会过滤空值,但是会过滤掉NULL。
2、使用 <> 的查询
1 SELECT * FROM `test` WHERE colA <> '';
1 SELECT * FROM `test` WHERE colA <> '';
结论:使用 <> 会过滤掉NULL和空值。
3、使用 count 查询
1 SELECT COUNT(colA) FROM `test`;
1 SELECT COUNT(colB) FROM `test`;
结论:使用 count 会过滤掉 NULL 值,但是不会过滤掉空值。
总结
1、空值不占空间,NULL值占空间(占用一个字节)。
2、当字段不为NULL时,也可以插入空值。
3、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。
4、使用 <> 查询时,会筛选掉空值和NULL值。
5、使用 count 统计时会过滤掉 NULL 值,但是不会过滤掉空值。
感谢各位的阅读!关于MySQL的空值和NULL的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图