推荐答案
在 SQL 中,IS NULL 和 IS NOT NULL 用于判断某个列的值是否为空值(NULL)。以下是它们的基本用法:
-- 查询某列为空值的记录 SELECT * FROM table_name WHERE column_name IS NULL; -- 查询某列不为空值的记录 SELECT * FROM table_name WHERE column_name IS NOT NULL;
本题详细解读
1. IS NULL 的使用
IS NULL 用于检查某个列的值是否为 NULL。NULL 在 SQL 中表示缺失或未知的值,它与空字符串或 0 不同。使用 IS NULL 可以筛选出那些在指定列中没有值的记录。
示例:
假设有一个 employees 表,其中有一个 email 列,我们想找出那些没有填写邮箱的员工:
SELECT * FROM employees WHERE email IS NULL;
2. IS NOT NULL 的使用
IS NOT NULL 用于检查某个列的值是否不为 NULL。它可以筛选出那些在指定列中有值的记录。
示例:
继续使用 employees 表,我们想找出那些已经填写了邮箱的员工:
SELECT * FROM employees WHERE email IS NOT NULL;
3. 注意事项
NULL与任何值的比较(包括NULL本身)都会返回UNKNOWN,因此不能使用=或!=来比较NULL。必须使用IS NULL或IS NOT NULL。- 在某些数据库中,空字符串和
NULL是不同的概念。空字符串表示一个已知的、长度为 0 的字符串,而NULL表示未知或缺失的值。
错误示例:
-- 错误的用法,无法正确筛选出 NULL 值 SELECT * FROM employees WHERE email = NULL;
正确示例:
-- 正确的用法 SELECT * FROM employees WHERE email IS NULL;