過濾數據 WHERE
- 簡介
- WHERE 子句操作符
- 檢測單個值案例
- 范圍值檢查 BETWEEN AND
- 空值檢查 NULL
簡介
數據庫表一般包含大量的數據,很少需要檢索表中的所有行。我們只檢索所需數據需要指定搜索條件(search criteria),搜索條件也稱為過濾條件(filter condition);
在 SELECT 語句中,數據根據 WHERE 子句中指定的搜索條件進行過濾。規定 WHERE 子句在 FROM 子句后給出。
SELECT *
FROM Products
WHERE prod_name='RR';
【1】在同時使用 ORDER BY 和 WHERE 子句時,應該讓 ORDER BY 位于 WHERE 之后;
WHERE 子句操作符
WHERE 子句操作符表如下:
【1】如上表所示,存在冗余的操作符,比如不等于;對于此,不同的 DBMS 支持的操作符不同;
檢測單個值案例
案例1:列出所有價格小于10元的產品
SELECT *
FROM Products
WHERE prod_price < 10;
案例2:列出所有價格小于等于10元的產品
SELECT *
FROM Products
WHERE prod_price <= 10;
案例3:列出所有不是供應商 DLL01 制造的產品
SELECT *
FROM Products
WHERE vend_id <> 'DLL01';
SELECT *
FROM Products
WHERE vend_id != 'DLL01';
【1】對于 <> 與 != 的選擇需要參照不同的 DBMS 來選擇;
范圍值檢查 BETWEEN AND
檢索價格在 5 美元和 10 美元之間的所有產品:
SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10;
空值檢查 NULL
其實在創建表時,表設計人員可以指定其中的列能否不包含值;而確定值是否為 NULL,不能簡單地檢查是否等于 NULL。SELECT 語句有一個特殊的 WHERE 子句,可用來檢查具有 NULL 值的列。這個 WHERE 子句就是 IS NULL 子句。具體如下:
SELECT prod_name
FROM Products
WHERE prod_price IS NULL;
上述語句返回所有沒有價格(空 prod_price 字段,不是價格為 0)的產品。