SQL 入門教程:使用 WHERE 子句


目錄

目錄匯總:SQL 零基礎入門教程

數據庫表一般包含大量的數據,很少需要檢索表中的所有行。通常只會根據特定操作或報告的需要提取表數據的子集。只檢索所需數據需要指定搜索條件(search criteria),搜索條件也稱為過濾條件(filter condition)。

SELECT 語句 中,數據根據 WHERE 子句中指定的搜索條件進行過濾。WHERE 子句在表名(FROM 子句)之后給出,如下所示:

輸入▼

SELECT prod_name, prod_price
FROM Products
WHERE prod_price = 3.49;

分析▼

這條語句從 products 表中檢索兩個列,但不返回所有行,只返回 prod_price 值為 3.49 的行,如下所示:

輸出▼

prod_name               prod_price
-------------------     ----------
Fish bean bag toy       3.49
Bird bean bag toy       3.49
Rabbit bean bag toy     3.49

這個示例使用了簡單的相等檢驗:檢查這一列的值是否為指定值,據此過濾數據。不過,SQL 不只能測試等於,還能做更多的事情。

提示:有多少個 0?

你在練習這個示例時,會發現顯示的結果可能是 3.49、3.490、3.4900 等。出現這樣的情況,往往是因為 DBMS 指定了所使用的數據類型及其默認行為。所以,如果你的輸出可能與教程上的有點不同,不必焦慮,畢竟從數學角度講,3.49 和 3.4900 是一樣的。

提示:SQL 過濾與應用過濾

數據也可以在應用層過濾。為此,SQL 的 SELECT 語句為客戶端應用檢索出超過實際所需的數據,然后客戶端代碼對返回數據進行循環,提取出需要的行。

通常,這種做法極其不妥。優化數據庫后可以更快速有效地對數據進行過濾。而讓客戶端應用(或開發語言)處理數據庫的工作將會極大地影響應用的性能,並且使所創建的應用完全不具備可伸縮性。此外,如果在客戶端過濾數據,服務器不得不通過網絡發送多余的數據,這將導致網絡帶寬的浪費。

注意:WHERE 子句的位置

在同時使用 ORDER BYWHERE 子句時,應該讓 ORDER BY 位於 WHERE 之后,否則將會產生錯誤。

請參閱

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM