SQL NULL 值
如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
NULL 值的处理方式与其他值不同。
NULL 用作未知的或不适用的值的占位符。
注释:无法比较 NULL 和 0;它们是不等价的。
SQL 的 NULL 值处理
MONKEY表中没有给ADDRESS指定值
MONKEY_ID | MONKEY_NAME | MONKEY_BIRTHDAY | ADDRESS |
---|---|---|---|
1 | Yvette | 2015-11-05 | NULL |
2 | Zenobia | 2015-11-05 | NULL |
3 | Sara | 2015-11-05 | NULL |
110 | Yetta | 2015-11-05 | NULL |
那么我们如何测试 NULL 值呢?
无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。
我们必须使用 IS NULL 和 IS NOT NULL 操作符。
SQL IS NULL
我们如何仅仅选取在 “Address” 列中带有 NULL 值的记录呢?
我们必须使用 IS NULL 操作符:
SELECT * FROM MONKEY WHERE ADDRESS IS NULL
结果集:
MONKEY_ID | MONKEY_NAME | MONKEY_BIRTHDAY | ADDRESS |
---|---|---|---|
1 | Yvette | 2015-11-05 | NULL |
2 | Zenobia | 2015-11-05 | NULL |
3 | Sara | 2015-11-05 | NULL |
110 | Yetta | 2015-11-05 | NULL |
提示:请始终使用 IS NULL 来查找 NULL 值。
SQL IS NOT NULL
我们如何选取在 “Address” 列中不带有 NULL 值的记录呢?
我们必须使用 IS NOT NULL 操作符:
SELECT * FROM MONKEY WHERE ADDRESS IS NOT NULL
结果集:
MONKEY_ID | MONKEY_NAME | MONKEY_BIRTHDAY | ADDRESS |
---|---|---|---|
111 | Selena | 2015-11-05 | ShenZhen China |