Oracle Where子句
Where是Oracle中的條件查詢子句,本教程,將學(xué)習(xí)如何使用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. 通過使用簡單的相等運算符來查詢行記錄
以下示例僅返回名稱為“Kingston”的產(chǎn)品:
SELECT product_name, description, list_price, category_id FROM products WHERE product_name = 'Kingston';
執(zhí)行上面示例中的查詢語句,得到以下結(jié)果:
在這個例子中,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 | 相當(dāng)于`[Not] >= n` 且 |
11 | [NOT] EXISTS | 如果子查詢返回至少一行,則返回`true` |
12 | `IS [NOT] NULL` | 測試`NULL`的值 |
例如,要獲取標(biāo)價大于500的產(chǎn)品,請使用以下語句:
SELECT product_name, list_price FROM products WHERE list_price > 500;
執(zhí)行上面查詢語句,得到以下結(jié)果:
3. 選擇符合某些條件的行
要組合條件,可以使用AND,OR和NOT邏輯運算符。
例如,要獲取屬于類別編號是4且標(biāo)價大于500的所有主板,請使用以下語句:
SELECT product_name, list_price FROM products WHERE list_price > 500 AND category_id = 4;
執(zhí)行上面示例代碼,得到以下結(jié)果:
4. 選擇在兩個值之間的值的行記錄
要查找具有兩個值之間的值的行,請在WHERE子句中使用BETWEEN運算符。
例如,要獲取標(biāo)價在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é)果:
請注意,以下表達式是等效的:
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é)果:
表達方式:
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ù)指定的模式來匹配行記錄。
- Oracle 數(shù)據(jù)庫創(chuàng)建導(dǎo)入
- Oracle Where子句
- Oracle Or子句
- Oracle SET TRANSACTION語句(設(shè)置事務(wù))
- Oracle 怎么禁用外鍵
- Oracle Ascii()函數(shù)
- Oracle Chr()函數(shù)
- Oracle Concat()函數(shù)
- Linux Memcached 安裝
- Memcached append 命令
- Memcached CAS 命令
- Memcached stats slabs 命令
- DB2表空間
- DB2存儲組
- oracle中ORA-12514問題解決方法
- PLSQL一些常用知識點梳理總結(jié)
- Oracle中的table()函數(shù)使用
- oracle導(dǎo)出數(shù)據(jù)到文本、從文本導(dǎo)入數(shù)據(jù)的詳細步驟
- Oracle導(dǎo)出文本文件的三種方法(spool,UTL_FILE,sqluldr2)
- Oracle報錯:ORA-28001:口令已失效解決辦法