在本教學中將學習如何使用Oracle WHERE
子句來指定過濾的條件返回符合查詢條件的行記錄。
WHERE
子句指定SELECT
語句返回符合搜尋條件的行記錄。下面說明了WHERE
子句的語法:
SELECT
column_1,
column_2,
...
FROM
table_name
WHERE
search_condition
ORDER BY
column_1,
column_2;
WHERE
子句出現在FROM
子句之後但在ORDER BY子句之前。在WHERE關鍵字之後是search_condition
- 它定義了返回行記錄必須滿足的條件。
除了SELECT
語句之外,還可以使用DELETE或UPDATE語句中的WHERE
子句來指定要更新或刪除的行記錄。
請參閱範例資料庫中的以下產品(products
)表,其表結構如下 -
以下範例僅返回名稱為「Kingston」
的產品:
SELECT
product_name,
description,
list_price,
category_id
FROM
products
WHERE
product_name = 'Kingston';
執行上面範例中的查詢語句,得到以下結果 -
在這個例子中,Oracle按以下順序評估子句:FROM WHERE
和SELECT
FROM
子句指定查詢資料的表。WHERE
子句基於條件(例如product_name ='Kingston'
過濾行記錄)。SELECT
子句選擇了應該返回的列。除了等於(=
)運算子之外,Oracle還提供了下表中所示的許多其他比較運算子:
編號 | 運算子 | 描述 |
---|---|---|
1 | = |
等於 |
2 | != ,<> |
不等於 |
3 | > |
大於 |
4 | < |
小於 |
5 | >= |
大於或等於 |
6 | <= |
小於或等於 |
7 | IN | 等於值列表中的任何值 |
8 | ANY/SOME/ALL | 將值與列表或子查詢進行比較。它必須以另一個運算子(例如:= ,> ,< )作為字首。 |
9 | NOT IN | 不等於值列表中的任何值 |
10 | [NOT] BETWEEN n AND m | 相當於[Not] >= n 且 <= y 。 |
11 | [NOT] EXISTS | 如果子查詢返回至少一行,則返回true |
12 | IS [NOT] NULL |
測試NULL 的值 |
例如,要獲取標價大於500
的產品,請使用以下語句:
SELECT
product_name,
list_price
FROM
products
WHERE
list_price > 500;
執行上面查詢語句,得到以下結果 -
例如,要獲取屬於類別編號是4
且標價大於500
的所有主機板,請使用以下語句:
SELECT
product_name,
list_price
FROM
products
WHERE
list_price > 500
AND category_id = 4;
執行上面範例程式碼,得到以下結果 -
要查詢具有兩個值之間的值的行,請在WHERE
子句中使用BETWEEN
運算子。
例如,要獲取標價在650
到680
之間(650 <= list_price <= 680
)的產品,請使用以下語句:
SELECT
product_name,
list_price
FROM
products
WHERE
list_price BETWEEN 650 AND 680
ORDER BY
list_price;
執行上面查詢語句,得到以下結果 -
請注意,以下表示式是等效的:
SELECT
product_name,
list_price
FROM
products
WHERE
list_price >= 650 AND list_price <= 680
ORDER BY
list_price;
要查詢值列表中的行記錄,可以使用IN運算子,如下所示:
SELECT
product_name,
category_id
FROM
products
WHERE
category_id IN(1, 4)
ORDER BY
product_name;
執行上面查詢語句,得到以下結果 -
表達方式:
category_id IN (1, 4)
等效於 -
category_id = 1 OR category_id = 4
以下語句檢索名稱以Asus
開頭的產品:
SELECT
product_name,
list_price
FROM
products
WHERE
product_name LIKE 'Asus%'
ORDER BY
list_price;
在這個例子中,我們使用LIKE運算子來根據指定的模式來匹配行記錄。
在本教學中,您已學習如何使用Oracle WHERE
子句為查詢返回指定搜尋條件的資料記錄。