零基础学SQL
上QQ阅读APP看书,第一时间看更新

6.3 空值查询

在使用SQL语句执行查询操作时,还有一种是空值查询。在数据表中,如果一个表的行属性中不存在任何值的时候,也就是说该表的行属性中没有任何数据记录。那么就将其称之为空值。在SQL的查询中,NULL可以用来表示空值的含义。在SQL语句中,可以使用IS NULL或者IS NOT NULL关键字来判断空值。

例6.12 查询教师信息表中教师津贴为空的教师信息。

        SELECT teaID ,teaName , profession,salary,pension
        FROM T_teacher
        WHERE pension IS NULL

这段SQL语句是查询教师信息表中教师津贴为空的教师信息。在WHERE子句中使用IS NULL关键字作为限定条件,用来表示教师津贴的字段pension所在列的值为空。其查询的结果如图6.10所示。

图6.10 查询教师信息表中教师津贴为空的教师信息

从上面的查询结果可以看到,查询出来的教师记录中其表示津贴的列pension的值都为NULL。如果想要查询教师津贴不为空的教师记录,可以使用IS NOT NULL关键字。例如对于例6.12,如果想要查询教师信息表中教师津贴不为空的教师信息,可以使用下面的SQL语句完成。

        SELECT teaID,teaName,profession,salary,pension
        FROM T_teacher
        WHERE pension IS NOT NULL

这段SQL语句是查询教师信息表中教师津贴不为空的教师信息。在WHERE子句中使用IS NOT NULL关键字作为限定条件,用来限定表示教师津贴的字段pension所在列的值不为空。其查询的结果如图6.11所示。

图6.11 查询教师信息表中教师津贴不为空的教师信息

从上面的查询结果可以看到,在教师信息表中凡是教师津贴不为空的教师信息全部都被检索了出来。

注意 当使用NULL查询数据表中的记录是否为空值时,不能使用比较运算符,只能使用IS NULL或者IS NOT NULL。使用比较运算符对NULL值进行比较时,其查询条件返回的结果始终是FALSE。也就是说,使用比较运算符对NULL值进行比较,不会检索出任何结果。