Oracle Where子句用法

2022-10-27 15:31 更新

Where是Oracle中的條件查詢子句,本教程,將學習如何使用Oracle Where子句來指定過濾的條件返回符合查詢條件的行記錄。

Oracle WHERE子句簡介

WHERE子句指定SELECT語句返回符合搜索條件的行記錄。下面說明了WHERE子句的語法:

SELECT
    column_1,
    column_2,
    ...
FROM
    table_name
WHERE
    search_condition
ORDER BY
    column_1,
    column_2;

WHERE子句出現(xiàn)在FROM子句之后但在ORDER BY子句之前。在WHERE關(guān)鍵字之后是search_condition - 它定義了返回行記錄必須滿足的條件。

除了SELECT語句之外,還可以使用DELETE或UPDATE語句中的WHERE子句來指定要刪除或更新的行記錄。

Oracle WHERE示例

參閱示例數(shù)據(jù)庫中的以下產(chǎn)品(products)表,其表結(jié)構(gòu)如下:

1

1. 通過使用簡單的相等運算符來查詢行記錄

以下示例僅返回名稱為“Kingston”的產(chǎn)品:

SELECT
    product_name,
    description,
    list_price,
    category_id
FROM
    products
WHERE
    product_name = 'Kingston';

執(zhí)行上面示例中的查詢語句,得到以下結(jié)果:

2

在這個例子中,Oracle按以下順序評估子句:FROM WHERE和SELECT

  • 首先,F(xiàn)ROM子句指定查詢數(shù)據(jù)的表。
  • 其次,WHERE子句基于條件(例如product_name ='Kingston'過濾行記錄)。
  • 第三,SELECT子句選擇了應(yīng)該返回的列。

2. 使用比較運算符選擇行記錄

除了等于(=)運算符之外,Oracle還提供了下表中所示的許多其他比較運算符:

編號 運算符 描述
1 = 等于
2 !=,<> 不等于
3 > 大于
4 < 小于
5 >= 大于等于
6 <= 小于等于
7 IN 等于值列表中的任何值
8 ANY/SOME/ALL 將值與列表或子查詢進行比較。它必須以另一個運算符(例如:=>,<)作為前綴。
9 NOT IN 不等于值列表中的任何值
10 [NOT] BETWEEN n AND m 相當于[Not] >= n 且 <= m。
11 [NOT] EXISTS 如果子查詢返回至少一行,則返回true
12 IS [NOT] NULL 測試NULL的值

例如,要獲取標價大于500的產(chǎn)品,請使用以下語句:

SELECT
    product_name,
    list_price
FROM
    products
WHERE
    list_price > 500;

執(zhí)行上面查詢語句,得到以下結(jié)果:

3

3. 選擇符合某些條件的行

要組合條件,可以使用AND,OR和NOT邏輯運算符。

例如,要獲取屬于類別編號是4且標價大于500的所有主板,請使用以下語句:

SELECT
    product_name,
    list_price
FROM
    products
WHERE
    list_price > 500
    AND category_id = 4;

執(zhí)行上面示例代碼,得到以下結(jié)果:

4

4. 選擇在兩個值之間的值的行記錄

要查找具有兩個值之間的值的行,請在WHERE子句中使用BETWEEN運算符。

例如,要獲取標價在650到680之間(650 <= list_price <= 680)的產(chǎn)品,請使用以下語句:

SELECT
    product_name,
    list_price
FROM
    products
WHERE
    list_price BETWEEN 650 AND 680
ORDER BY
    list_price;

執(zhí)行上面查詢語句,得到以下結(jié)果:

5

請注意,以下表達式是等效的:

SELECT
    product_name,
    list_price
FROM
    products
WHERE
    list_price >= 650 AND list_price <= 680
ORDER BY
    list_price;

5. 選擇符合值列表中的行記錄

要查詢值列表中的行記錄,可以使用IN運算符,如下所示:

SELECT
    product_name,
    category_id
FROM
    products
WHERE
    category_id IN(1, 4)
ORDER BY
    product_name;

執(zhí)行上面查詢語句,得到以下結(jié)果:

6

表達方式:

category_id IN (1, 4)

等效于 -

category_id = 1 OR category_id = 4

6. 選擇包含值的行作為字符串的一部分

以下語句檢索名稱以Asus開頭的產(chǎn)品:

SELECT
   product_name,
   list_price
FROM
   products
WHERE
   product_name LIKE 'Asus%'
ORDER BY
   list_price;

在這個例子中,我們使用LIKE運算符來根據(jù)指定的模式來匹配行記錄。

7


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號