注意,空值与零不同——它们是不存在数据的单元格。
在WHERE子句中标识空值时,我们写IS NULL或IS NOT NULL。我们不使用=,因为在SQL中NULL不被视为值。相反,它是数据的属性。
WHERE id = NULL (This is wrong syntax)
WHERE id IS NULL
WHERE id IS NOT NULL
nulls
有两种常见的方法可能会遇到空值:
执行左或右联接时经常出现空值。您在sql join中看到——当左联接的左表中的某些行与右表中的行不匹配时,这些行将在结果集中包含一些空值。
空值也可能出现在数据库中丢失的数据中。
COUNT the Number of Rows in a Table
SELECT COUNT(*)//返回库的行数
FROM accounts;//accounts是我的一个数据库名字
SELECT COUNT(id)//可以返回id这个列中非NULL的个数
FROM accounts;
ps:COUNT计算的是非空值的数量,可以是文本,有文本+1,为NULL不增加不减小,而AVERAGE(),SUM()等聚合函数只能操作的是数值,SUM将忽略空值NULL,若为NULL,计算时当做0来计算。
SELECT SUM(standard_qty)
FROM orders;//计算orders库中standard_qty这一列中的数据总和
聚合的提醒
需要记住的重要一点是:聚合器只垂直聚合—列的值。如果希望跨行执行计算,可以使用简单的算术方法。