介紹WHERE子句和BETWEEN條件
結構化查詢語言(SQL)為數據庫用戶提供了創建自定義查詢以從數據庫中提取信息的功能。 在前面的文章中,我們探討了使用SQL SELECT查詢從數據庫中提取信息 。 讓我們詳細討論這個討論,並探討如何執行高級查詢來檢索符合特定條件的數據。
讓我們考慮一個基於常用Northwind數據庫的示例,該數據庫經常隨數據庫產品一起提供,作為教程。
以下是數據庫產品表的摘錄:
產品ID | 產品名稱 | 供應商ID | 單位數量 | 單價 | 庫存量 |
---|---|---|---|---|---|
1 | 柴 | 1 | 10盒x 20袋 | 18.00 | 39 |
2 | 常 | 1 | 24 - 12盎司瓶 | 19.00 | 17 |
3 | 八角糖漿 | 1 | 12 - 550毫升的瓶子 | 10.00 | 13 |
4 | 廚師安東的Cajun調味料 | 2 | 48 - 6盎司罐子 | 22.00 | 53 |
五 | 廚師安東的濃湯混合 | 2 | 36盒 | 21.35 | 0 |
6 | 祖母的波森莓蔓延 | 3 | 12 - 8盎司罐子 | 25.00 | 120 |
7 | 伯伯叔叔的有機幹梨 | 3 | 12 - 1磅包裝。 | 30.00 | 15 |
簡單的邊界條件
我們將在查詢中放置的第一個限制涉及簡單的邊界條件。 我們可以在SELECT查詢的WHERE子句中使用由標準運算符(如<,>,> =和<=)構造的簡單條件語句指定它們。
首先,讓我們嘗試一個簡單的查詢,它允許我們提取數據庫中UnitPrice大於20.00的所有產品的列表:
這產生了四種產品的清單,如下所示:
ProductName單價------- --------廚師安東的濃湯混合21.35廚師安東的美國調味品22.00奶奶波森莓蔓延25.00叔叔Bob's有機幹梨30.00我們也可以使用帶有字符串值的WHERE子句。 這基本上將字符等同於數字,其中A表示值1,Z表示值26.例如,我們可以使用以下查詢顯示名稱以U,V,W,X,Y或Z開頭的所有產品:
SELECT ProductName FROM products WHERE ProductName> ='T'這產生了結果:
產品名稱------- Bob叔叔的有機幹梨使用邊界表示範圍
WHERE子句還允許我們通過使用多個條件在值上實現範圍條件。 例如,如果我們想要採用上述查詢並將結果限制為價格介於15.00和20.00之間的產品,則可以使用以下查詢:
SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice> 15.00 AND UnitPrice <20.00這產生如下所示的結果:
ProductName單價------- -------- Chai 18.00 Chang 19.00用BETWEEN表達範圍
SQL還提供了一種快捷方式BETWEEN語法,可以減少我們需要包含的條件數量並使查詢更具可讀性。 例如,不是使用上面的兩個WHERE條件,我們可以將相同的查詢表示為:
SELECT ProductName,UnitPrice FROM產品單價在15.00和20.00之間與我們的其他條件子句一樣,BETWEEN也適用於字符串值。 如果我們想生成一個以V,W或X開頭的所有國家的列表,我們可以使用查詢:
SELECT ProductName FROM產品WHERE ProductName BETWEEN“A”和“D”這產生了結果:
產品名稱-------八角糖漿Chai Chang廚師Anton's Gumbo Mix廚師Anton's Cajun調味料WHERE子句是SQL語言的一個強大部分,它允許您將結果限制為落在指定範圍內的值。 它通常用於幫助表達業務邏輯,並應該成為每個數據庫專業人員工具箱的一部分。
將常用子句合併到存儲過程中以使其可以在沒有SQL知識的情況下訪問它們通常很有幫助。