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 ...
随机推荐
- mysql: show full processlist 详解
show full processlist 是显示用户正在运行的线程,需要注意的是,除了 root 用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程. ...
- merge into 导致序列跳号
For each row merged by a MERGE statement. The reference to NEXTVAL can appear in the merge_insert_cl ...
- 为何单片机程序不用加载到RAM
一. STM32程序构成 1.1. STM32的存储空间 1.1.1. RAM 1.1.1.1 单片机的RAM是SRAM. 1.1.1.2. SRAM特点 a.优点,速度快,不必配合内存刷新电路,可提 ...
- [BZOJ 2006] [NOI 2010]超级钢琴(贪心+ST表+堆)
[BZOJ 2006] [NOI 2010]超级钢琴(贪心+ST表+堆) 题面 给出一个长度为n的序列,选k段长度在L到R之间的区间,一个区间的值等于区间内所有元素之的和,使得k个区间的值之和最大.区 ...
- idea 代码部分格式化
效果: 处理Idea使用ctrl+alt+L进行代码格式化时部分代码可以被忽略,不执行格式化功能(webstorm,phpstorm同理) 原因: 有时希望自己写的一些代码不被格式化,或者发现格式化后 ...
- 搜索专题: HDU1027Ignatius and the Princess II
Ignatius and the Princess II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ( ...
- Luogu P2756 [网络流24题]飞行员配对方案问题_二分图匹配题解
二分图模板题 我用的是匈牙利 其实最大流也可以做 #include<iostream> #include<cstdio> #include<cstdlib> #in ...
- 继续死磕python
一.数据运算 算术运算 比较运算 赋值运算 逻辑运算 成员运算 身份运算 位运算 其中左右移运算是逻辑左右移即缺失位补0,而算数右移缺失补符号位(注意逻辑运算都是补码运算即都取补码再运算,然后结果也是 ...
- python引用库异常总结
一.导入import pandas.io.data as web 时报了"The pandas.io.data module is moved to a separate package & ...
- 关于数据库抛出异常:Incorrect string value: '\xE1\x...' for column '字段名' at row 1 问题的解决方法
打开sql,进行语句编辑 ENGINE=InnoDB DEFAULT CHARSET=utf8;字符集设置utf-8编码