Oracle Where子句
Oracle Where子句
在本教程中,将学习如何使用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 | <= |
小于或等于 |
| 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;
执行上面查询语句,得到以下结果 -

3. 选择符合某些条件的行
例如,要获取属于类别编号是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;
执行上面查询语句,得到以下结果 -

请注意,以下表达式是等效的:
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运算符来根据指定的模式来匹配行记录。

在本教程中,您已学习如何使用Oracle WHERE子句为查询返回指定搜索条件的数据记录。
Oracle Where子句的更多相关文章
- Oracle Like子句
Oracle Like子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle LIKE运算符来测试列中的值是否与指定 ...
- Oracle Between子句
Oracle Between子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle BETWEEN运算符来选择值在一 ...
- Oracle In子句
Oracle In子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle IN运算符来确定值是否与列表或子查询中的任 ...
- Oracle Fetch子句
Oracle Fetch子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,将学习如何使用Oracle FETCH子句来限制查询返回的行数. ...
- Oracle Or子句
Oracle Or子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,我们来学习如何使用Oracle OR运算符来组合两个或更多的布尔表达式. ...
- Oracle And子句
Oracle And子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,将学习如何使用Oracle AND运算符来组合两个或更多的布尔表达式. ...
- oracle排序子句的特殊写法与ORA-01785错误
刚刚写的SQL语句在执行的时候报[ORA-01785: ORDER BY item must be the number of a SELECT-list expression]错误,于是自己百度了一 ...
- oracle SELECT子句中避免使用 ‘ * ‘
当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法. 不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将’*’ 依次转换成所 ...
- oracle WHERE子句中的连接顺序
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 例如: (低效,执行时间1 ...
随机推荐
- Linux的磁盘配额详解(Quota)
1. 检查内核情况 检查当前内核是否支持quota,当前内核配置文件在/boot下 如果当前内核不支持quota,需要重新编译内核将quota support编译进核心: File systems ...
- 转:mysql datetime类型精确到毫秒、微秒的问题
原文地址:mysql datetime类型精确到毫秒.微秒的问题 mysql里面的datetime类型的精确度是可以到1/ 10 ^ 6 秒的某些客户端(如navicat for mysql)的显示经 ...
- Spring框架 课程笔记
Spring框架 课程笔记 第1章 Spring概述 1.1 Spring概述 1) Spring是一个开源框架 2) Spring为简化企业级开发而生,使用Spring ...
- java基础笔记(7)
Socket编程 通信基础:ip地址(位置).协议(语言).端口(软件程序): java提供网络功能的四大类: InetAddress没有构造函数,不够里面有一些方法是可以返回实例,如: InetAd ...
- HDU 1864 最大报销额 0-1背包
HDU 1864 最大报销额 0-1背包 题意 现有一笔经费可以报销一定额度的发票.允许报销的发票类型包括买图书(A类).文具(B类).差旅(C类),要求每张发票的总额不得超过1000元,每张发票上, ...
- 异步Promise及Async/Await可能最完整入门攻略
此文只介绍Async/Await与Promise基础知识与实际用到注意的问题,将通过很多代码实例进行说明,两个实例代码是setDelay和setDelaySecond. tips:本文系原创转自我的博 ...
- Resharper 2019.1.1 破解
本文链接:https://blog.csdn.net/qq_21361809/article/details/92423949 Resharper ...
- Chrome开发者工具详解(五)之Network面板
Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Network面板. Timeline面板.Profiles面板.Application面板.Se ...
- java复习(4)异常
1.Java异常的分类和类结构图 1.Throwable是整个java异常体系的超类,所有的异常类都派生自这个类,包含Error和Exception这两个直接的子类,概括了所有能被当做异常跑出来的东西 ...
- C# 同比缩放图片
/** * 无损缩放图片 * bitmap 需要缩放的图片 * w 需要缩放的宽度 * h 需要缩放的高度 * */ public static System.Drawing.Bitmap TBSca ...