OracleWhere(条件)⼦句⽤法
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⼦句出现在FROM⼦句之后但在ORDER BY⼦句之前。在WHERE关键字之后是search_condition - 它定义了返回⾏记录必须满⾜的条件。
除了SELECT语句之外,还可以使⽤DELETE或UPDATE语句中的WHERE⼦句来指定要更新或删除的⾏记录。
Oracle WHERE⽰例
参阅⽰例数据库中的以下产品(products)表,其表结构如下:
1. 通过使⽤简单的相等运算符来查询⾏记录
以下⽰例仅返回名称为“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⼦句选择了应该返回的列。
2. 使⽤⽐较运算符选择⾏记录
除了等于(=)运算符之外,Oracle还提供了下表中所⽰的许多其他⽐较运算符:
编号运算符描述
1=等于
2!=,<>不等于
3>⼤于
4<⼩于
5>=⼤于或等于
6<=⼩于或等于
7IN等于值列表中的任何值
8ANY/SOME/ALL将值与列表或⼦查询进⾏⽐较。它必须以另⼀个运算符(例如:=,>,<)作为前缀。9NOT IN不等于值列表中的任何值
10[NOT] BETWEEN n AND m相当于[Not] >= n且 <= y。
11[NOT] EXISTS如果⼦查询返回⾄少⼀⾏,则返回true
12IS [NOT] NULL测试NULL的值
例如,要获取标价⼤于500的产品,请使⽤以下语句:
SELECT
product_name,
list_price
FROM
products
WHERE
list_price > 500;
执⾏上⾯查询语句,得到以下结果:
3. 选择符合某些条件的⾏
要组合条件,可以使⽤AND,OR和NOT逻辑运算符。
例如,要获取属于类别编号是4且标价⼤于500的所有主板,请使⽤以下语句:
SELECT
product_name,
list_price
FROM
products
WHERE
list_price > 500
AND category_id = 4;
执⾏上⾯⽰例代码,得到以下结果:
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;
执⾏上⾯查询语句,得到以下结果:
exists的用法请注意,以下表达式是等效的:
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;
执⾏上⾯查询语句,得到以下结果:
表达⽅式:
category_id IN (1, 4)
等效于 -
category_id = 1 OR category_id = 4
6. 选择包含值的⾏作为字符串的⼀部分
以下语句检索名称以Asus开头的产品:
SELECT
product_name,
list_price
FROM
products
WHERE
product_name LIKE 'Asus%'
ORDER BY
list_price;
在这个例⼦中,我们使⽤LIKE运算符来根据指定的模式来匹配⾏记录。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。