Oracle Where子句

作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146

在本教程中,将学习如何使用Oracle WHERE子句来指定过滤的条件返回符合查询条件的行记录。

Oracle WHERE子句简介

WHERE子句指定SELECT语句返回符合搜索条件的行记录。下面说明了WHERE子句的语法:

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

WHERE子句出现在FROM子句之后但在ORDER BY子句之前。在WHERE关键字之后是search_condition - 它定义了返回行记录必须满足的条件。

除了SELECT语句之外,还可以使用DELETEUPDATE语句中的WHERE子句来指定要更新或删除的行记录。

Oracle WHERE示例

请参阅示例数据库中的以下产品(products)表,其表结构如下 -

1. 通过使用简单的相等运算符来查询行记录

以下示例仅返回名称为“Kingston”的产品:

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

执行上面示例中的查询语句,得到以下结果 -

在这个例子中,Oracle按以下顺序评估子句:FROM WHERESELECT

  • 首先,FROM子句指定查询数据的表。
  • 其次,WHERE子句基于条件(例如product_name ='Kingston'过滤行记录)。
  • 第三,SELECT子句选择了应该返回的列。

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 且 <= y
11 [NOT] EXISTS 如果子查询返回至少一行,则返回true
12 IS [NOT] NULL 测试NULL的值

例如,要获取标价大于500的产品,请使用以下语句:

SELECT
product_name,
list_price
FROM
products
WHERE
list_price > 500;
SQL

执行上面查询语句,得到以下结果 -

3. 选择符合某些条件的行

要组合条件,可以使用ANDORNOT逻辑运算符。

例如,要获取属于类别编号是4且标价大于500的所有主板,请使用以下语句:

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

执行上面示例代码,得到以下结果 -

4. 选择在两个值之间的值的行记录

要查找具有两个值之间的值的行,请在WHERE子句中使用BETWEEN运算符。
例如,要获取标价在650680之间(650 <= list_price <= 680)的产品,请使用以下语句:

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

执行上面查询语句,得到以下结果 -

请注意,以下表达式是等效的:

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

5. 选择符合值列表中的行记录

要查询值列表中的行记录,可以使用IN运算符,如下所示:

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

执行上面查询语句,得到以下结果 -

表达方式:

category_id IN (1, 4)
SQL

等效于 -

category_id = 1 OR category_id = 4
SQL

6. 选择包含值的行作为字符串的一部分

以下语句检索名称以Asus开头的产品:

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

在这个例子中,我们使用LIKE运算符来根据指定的模式来匹配行记录。

在本教程中,您已学习如何使用Oracle WHERE子句为查询返回指定搜索条件的数据记录。

最新文章

  1. SQL Server导入数据时“启用标示插入”详解
  2. eclipse安装Veloeclipse
  3. 使用 CSS 去掉 iPhone 网页上按钮的超大圆角以及文本框圆角默认样式
  4. [转]SEP 11.x 迁移
  5. jQuery EasyUI DataGrid Checkbox 数据设定与取值
  6. 关于内存 GetMemory( ) 笔试分析
  7. 妙用||和&amp;&amp;
  8. Codeforces Round #298 (Div. 2) B. Covered Path
  9. Linux数据管理——文件锁定
  10. 10.使用final关键字修饰一个变量时...
  11. Swift笔记3
  12. Python字典的浅复制和深复制
  13. php中require、require_once、include、include_once类库重复引入效率问题详解
  14. python笔记20-装饰器、作用域
  15. list对象中根据两个参数过滤数据
  16. PS 使用笔记 - PS 让工作台适应 当前图层
  17. Python datetime与timestamp之间的转换
  18. Keil MDK忽略警告:文件末尾空白行警告
  19. 【opencv基础】OpenCV installation stuck at [ 98%] Built target opencv_perf_stitching with no error
  20. C#的格式化(进制转换|位运算)

热门文章

  1. 第二次课程总结&amp;学习总结
  2. vue组件化编程应用2
  3. 《剑指offer》面试题22 栈的压入、弹出序列 Java版
  4. Ubuntu终端路径和文件夹相互切换
  5. linux 进程1
  6. 剑指offer-包含min函数的栈-栈和队列-python
  7. ModelForm操作
  8. 解决PKIX path building failed的问题
  9. 源讯科技(中国)有限公司(Atos Worldline)
  10. ffmpeg使用分析视频