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. linux文件属性软链接

    linux里的软链接 相当于windows系统中的快捷方式 软链接总结: 1.删除源文件,软链接文件依然存在,但是无法访问指向源文件路径内容. 2.失效时候一般是白字红底闪烁显示. test -> ...

  2. Java基础语法—流程控制语句

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.所以,我们必须清楚每条语句的执行流程.而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能. 3.1 流程控制语句分类 ​ ...

  3. Qfile

    打开方式: void AddStudents::write_to_file(QString src){ QFile file("stu.txt"); if (!file.open( ...

  4. Tomcat域名与服务器多对多配置

    参考: https://www.cnblogs.com/yueshutong/p/9381566.html

  5. BZOJ 4033: [HAOI2015]树上染色题解

    BZOJ 4033: [HAOI2015]树上染色题解(树形dp) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327400 原题地址: BZOJ 403 ...

  6. PythonDay08

    第八章 今日内容 文件操作 读操作 写操作 +操作 其他操作 读操作 r模式f = open('test.txt', mode='r', encoding='utf-8')print(f.read() ...

  7. mongoose 数据库操作2

     mongoose的内置的主要功能解说 除了定义文档结构和你要存储的数据类型外.模式(Schema)还用于下面定义: ·        Validators (异步和同步) ·        Defa ...

  8. C++设计模式:访客模式

    访客模式:通俗的说, 就是定义一个访问者角色, 当对指定角色进行访问时要通过访问者进行访问. 访客模式的侵入性适中,仅在被访问的类里面加一个对外提供接待访问者的接口. 访客模式的优点: 符合单一职责原 ...

  9. Red Hat Enterprise Linux查看系统版本命令

    # arch 返回结果为i686表示32位系统,x86_64表示64位系统. # uname -a # uname -r # lsb_release -a # cat /proc/version # ...

  10. jQuery进阶第四天(2019 10.13)

    1 初识面向对象(面向对象是一种思维方式) 以前写的代码 var name = '莉莉'; var sex = '女'; var age = 18; var name1 = '小明'; var sex ...