注意,空值與零不同——它們是不存在數據的單元格。
在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這一列中的數據總和
聚合的提醒
需要記住的重要一點是:聚合器只垂直聚合—列的值。如果希望跨行執行計算,可以使用簡單的算術方法。