空值判断

为什么要用 IS NULL

NULL 表示“缺失/未知”,它不是一个普通值,因此不能用 = NULL!= NULL 来比较,必须使用 IS NULL / IS NOT NULL

-- 查询身高为空的信息
SELECT * FROM students WHERE height IS NULL;

-- 判断非空
SELECT * FROM students WHERE height IS NOT NULL;

-- SELECT * FROM students WHERE height NOT IS NULL; 错误使用

NULL 与空字符串的区别

与外连接的关系

外连接(LEFT/RIGHT JOIN)常会产生 NULL(未匹配到的那一侧列为 NULL),因此外连接结果的过滤经常需要配合 IS NULL(见 外连接查询)。

关联:where条件查询 / DQL / 外连接查询