4.1 使用 WHERE 子句:過濾
只檢索所需數據需要指定搜索條件(即過濾條件)。
WHERE 子句在表名(FROM 子句)后給出,根據 WHERE 子句中指定的條件過濾。
SELECT PRod_name, prod_priceFROM ProductsWHERE prod_price = 3.49;-- 分析:從 Products 表中檢索兩個列,只返回 prod_price 值為 3.49 的行
【提示】SQL 過濾與應用過濾:
數據也可以在應用層過濾。但是在優化數據庫后可以更快速地對數據進行過濾,如果讓客戶端應用(或開發語言)處理數據庫的工作將會極大地影響應用的性能,并且使所創建的應用完全不具備可伸縮性。此外,也可能會導致網絡帶寬的浪費。
【注意】WHERE 子句的位置:
在同時使用 ORDER BY 和 WHERE 子句時,ORDER BY 要位于 WHERE 之后。
4.2 WHERE 子句操作符
-- =====表4-1 WHERE子句操作符=====-- 操作符 說明 操作符 說明-- = 等于 > 大于-- <> 不等于 >= 大于等于-- != 不等于 !> 不大于-- < 小于 BETWEEN 在指定的兩個值之間-- <= 小于等于 IS NULL 為NULL值-- !< 不小于
4.2.1 檢查單個值
列出所有價格小于 10 美元的商品:
SELECT prod_name, prod_priceFROM ProductsWHERE prod_price < 10;
檢索所有價格小于等于 10 美元的產品:(結果同上圖)
SELECT prod_name, prod_priceFROM ProductsWHERE prod_price <= 10;
4.2.2 不匹配檢查
列出所有不是供應商 DLL01 制造的產品:
SELECT vend_id, prod_nameFROM ProductsWHERE vend_id <> 'DLL01';
-- 第二種寫法SELECT vend_id, prod_nameFROM ProductsWHERE vend_id != 'DLL01';
4.2.3 范圍值檢查(BETWEEN)
檢索價格在 5 美元和 10 美元之間的所有產品:
SELECT prod_name, prod_priceFROM ProductsWHERE prod_price BETWEEN 5 AND 10
4.2.4 空值檢查(NULL)
在一個列不包含值時,稱其包含空值 NULL
NULL:無值,與字段包含0、空字符串或僅僅包含空格不同
【注意】確定值是否為 NULL,不能簡單地檢查是否 =NULL,應該使用 IS NULL
檢索沒有電子郵件的顧客:
SELECT cust_name, cust_emailFROM CustomersWHERE cust_email IS NULL
4.3 小結
續集:
SQLServer:《SQL必知必會》一書的讀書筆記(三)
SQLServer:《SQL必知必會》一書的讀書筆記(五)
新聞熱點
疑難解答