mysql> INSERT INTO my_table (phone) VALUES (NULL);
mysql> INSERT INTO my_table (phone) VALUES ('');
第1种情况的含义可被解释为“电话号码未知”,而第2种情况的含义可被解释为“该人员没有电话,因此没有电话号码”。
注意事项
1 在SQL中,NULL 值与任何其他值的比较(即使是NULL)永远不会为“真”.
2 包含NULL的表达式总是会导出NULL值.
3 SELECT * FROM my_table WHERE phone = NULL;不能使用expr = NULL测试。下述语句不返回任何行,这是因为,对于任何表达式,expr = NULL永远不为“真”:
4 使用DISTINCT、GROUP BY或ORDER BY时,所有NULL值将被视为等同的。
5 使用ORDER BY时,首先将显示NULL值,如果指定了DESC按降序排列,NULL值将最后显示。
6 SELECT COUNT(*), COUNT(age) FROM person; COUNT(*),它将计数行而不是单独的列值,count(age)计数age列中的非NULL值数目.
7 对于unique类型的列,NULL值可存在多个.