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子句为查询返回指定搜索条件的数据记录。

Oracle Where子句的更多相关文章

  1. Oracle Like子句

    Oracle Like子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle LIKE运算符来测试列中的值是否与指定 ...

  2. Oracle Between子句

    Oracle Between子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle BETWEEN运算符来选择值在一 ...

  3. Oracle In子句

    Oracle In子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle IN运算符来确定值是否与列表或子查询中的任 ...

  4. Oracle Fetch子句

    Oracle Fetch子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,将学习如何使用Oracle FETCH子句来限制查询返回的行数. ...

  5. Oracle Or子句

    Oracle Or子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,我们来学习如何使用Oracle OR运算符来组合两个或更多的布尔表达式. ...

  6. Oracle And子句

    Oracle And子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,将学习如何使用Oracle AND运算符来组合两个或更多的布尔表达式. ...

  7. oracle排序子句的特殊写法与ORA-01785错误

    刚刚写的SQL语句在执行的时候报[ORA-01785: ORDER BY item must be the number of a SELECT-list expression]错误,于是自己百度了一 ...

  8. oracle SELECT子句中避免使用 ‘ * ‘

    当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法. 不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将’*’ 依次转换成所 ...

  9. oracle WHERE子句中的连接顺序

    ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 例如: (低效,执行时间1 ...

随机推荐

  1. nodejs 对接微信 express 对接微信

    安装引用 npm install express npm install body-parser npm install express-xml-bodyparser npm install axio ...

  2. Clover的简单使用

    官网: http://cn.ejie.me 操作说明相关: 方便的 Tab 页功能 要掌握功能强大,操作简单的标签页,只需记住Ctrl+T新开页面,Ctrl+W关闭页面,Ctrl+Tab切换页面,工作 ...

  3. Mysql 5.7存储过程的学习

    存储过程:对sql的封装和重用,经编译创建并保存在数据库中,通过指定存储过程的名字并给定参数(需要时)来调用执行. 优缺点: (1) 优点: 执行速度快------存储过程只在创建时进行编译,以后每次 ...

  4. springboot无法找到mapper😵

    今天在学习springboot的过程中遇到mapper无法找到的问题,困扰了很久

  5. Strust2+POI导出exel表格且解决文件名中文乱码/不显示

    下载并导入项目[poi.3.17.jar] strust.xml <action name="returnLate_*" class="com.stureturnl ...

  6. python常量 (最全常量解析)

    常量 一.常量 变量是变化的量,常量则是不变的量.python中没有使用语法强制定义常量,也就是说,python中定义常量本质上就是变量.如果非要定义常量,变量名必须全大写. AGE_OF_NICK ...

  7. mvvm实现一个简单的vue

    vue,基于mvvm模式下的一个前端框架 mvvm模式下简单的实现数据代理,数据劫持 1.是用Object.defineProperty 实现数据代理 2.使用发布订阅者模式,配合 Object.de ...

  8. 新手使用GIT 上传文件到github

    手把手教你如何使用 Git # 初始化一个新的Git仓库 1.方式一: mkdir(make directory) test或者直接进入文件夹中再打开git 方式二:cd /文件夹 cd(change ...

  9. python之路之——操作系统的发展历史

    阅读目录 手工操作 —— 穿孔卡片 批处理 —— 磁带存储和批处理系统 多道程序系统 分时系统 实时系统 通用操作系统 操作系统的进一步发展 操作系统的作用 手工操作 —— 穿孔卡片 1946年第一台 ...

  10. c# wpf 加密文本

    可以加密人们的内容,文本加密. 界面 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation& ...