SQL 中的 NULL 值处理与多表查询技巧
1. NULL 值的奥秘
在数据库操作中, NULL
这个概念常常令人感到困惑和畏惧。 NULL
代表着值的缺失,比如在员工未离职时,员工表中的 end_date
列就应该为 NULL
,因为此时不存在一个合适的值可以赋给该列。
NULL
有几种不同的情况:
- 不适用 :例如在 ATM 机上发生的交易,其交易记录中的员工 ID 列就不适用。
- 值未知 :当创建客户行时,如果联邦 ID 还未知,那么该列的值就是 NULL
。
- 值未定义 :当为一个尚未添加到数据库的产品创建账户时,相关账户信息可能存在未定义的值。
在处理 NULL
时,需要记住以下规则:
- 表达式可以为 NULL
,但不能等于 NULL
。
- 两个 NULL
值永远不相等。
为了测试一个表达式是否为 NULL
,需要使用 IS NULL
操作符,示例如下:
mysql> SELECT emp_id, fname, lname, superior_