旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

MySQL的空值和NULL有什么区别?(附示例)【MySQL教程】,MySQL

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:39评论:0


导读:本篇文章给人人带来的内容是关于MySQL的空值和NULL有什么区分?(附示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。从实质上区分:1、空值不占...
本篇文章给人人带来的内容是关于MySQL的空值和NULL有什么区分?(附示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

从实质上区分

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有什么区分?(附示例)的细致内容,更多请关注ki4网别的相干文章!

标签:MySQL


欢迎 发表评论: