从本质上区别: 1、空值不占空间 2、null值占空间 通俗的讲: 空值就像是一个真空转态杯子,什么都没有,而null值就是一个装满空气的杯子,虽然看起来都是一样的,但是有着本质的区别。 例子: 创建一个test表,colA是不可以存放null值的,colB是能存放null值的。
1 CREATE TABLE `test` ( 2 `colA` varchar(255) NOT NULL, 3 `colB` varchar(255) DEFAULT NULL 4 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入一个null值试试,会发生什么情况?
1 INSERT INTO `test`(`colA`, `colB`) VALUES (NULL, NULL);
//出现报错,原因是colA是不能插入null值。
那么如果两个字段同时插入空值,会怎么样。
1 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

1 SELECT * FROM `test` WHERE colA <> ‘‘;

1 SELECT * FROM `test` WHERE colA <> ‘‘;

1 SELECT COUNT(colA) FROM `test`;

1 SELECT COUNT(colB) FROM `test`;

上一篇
MYSQL数据库调优
下一篇
SQL查找连续出现的数字