了解NULL

NULL 无值(no value),它与字段包含 0 、空字符串或仅仅包含空格不同。 空值就是在数据表中,这条记录的某个字段为Null。

一、如果一个字段下有数据为NULL,那么当以这个字段为查询条件时,获取不到NULL值的行。

请看下图:

共11条学生数据,年龄最大为25岁。其中最后一条亮亮的年龄和班级为空。当我们以stu_age为查询条件的时候,我们查不出亮亮这一行数据。如下图:

原因:

NULL 与不匹配在通过过滤选择出不具有特定值的行时,你可能希望返回具有 NULL 值的行。但是,不行。因为未知具有特殊的含义,数据库不知道它们是否匹配,所以在匹配过滤或不匹配过滤时不返回它们。

二、like between and in not in 对NULL值查询不起效

一个简单的例子,你可能觉得 % 通配符可以匹配任何东西,但是NULL就是一个例外。

此时笑笑的性别就是NULL ,我们使用通配符%匹配学生性别来查询学生。

记住这句话:查询运算符、like、between and、in、not in对NULL值查询不起效。

三、分组时,NULL 将作为单独一个分组返回

我们使用学生的性别进行分组。

四、聚集函数会忽略列值为 NULL 的行

数据库本来有11条数据,但使用count(stu_sex)只查出10条。原因就是有一条数据的 stu_sexNULL

最后修改日期:2020-02-25

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。