网站首页 > 数据库 / 正文
在select语句中使用where子句可以实现对数据行的筛选操作,只有满足where子句中判断条件的行才会显示在结果中,而那些不满足where子句判断条件的行则不包括在结果集中。
语法格式如下:
select column_list
from table_name
where conditional_expression;
1.比较筛选
可以在 where 子句中使用比较运算符来筛选数据,这样只有满足条件的数据行才会被查询到,主要由下面6种情况:
a、A=B : 比较 A 与 B 是否相等
b、A!B 或 A <>B : 比较 A 与 B 是否不相等
c、A > B : 比较 A 是否大于 B
d、A < B :比较 A 是否小于 B
e、A >= B : 比较 A 是否大于或等于 B
f、A <= B : 比较 A 是否小于或等于 B
除了上面的6种,还有两个特殊的“比较筛选”操作
g、A { operator }ANY (B) :表示 A 与 B 中的任何一个元素进行operator 运算符的比较,只要有一个比较值为true,就返回数据行
h、A { operator } ALL (B):表示 A 与 B 中的所有元素都进行 operator 运算符的比较,只有与所有元素比较值都为 true,才返回数据行
下面看一个例子:
SQL> select empno,ename,sal from emp where sal <> all (3000,950,800);
表示从emp 表中使用 all 关键字过滤工资(sal) 同时不等于300、950和800的数据行。
2.使用特殊关键字筛选
特殊关键字主要有:like、in、between、is null来筛选。
2.1 like关键字
like关键字需要使用通配符在字符串内查找指定的模式。常用通配符有下划线"_",代表任意一个字符;百分号"%",代表任意数量的字符。
SQL> select empno,ename,job from emp where ename like 'S%';
2.2 in关键字
in关键字的格式是in(目标值1,目标值2,...),目标值的项目之间必须使用逗号分隔,并且括在括号中。
SQL> select empno,ename,job from emp where job in('PRESIDENT','MANAGER');
2.3 between关键字
需要返回某一个数据值是否位于两个给定的值之间,可以使用范围条件进行检索。
SQL> select empno,ename,sal from emp where sal between 1000 and 3000;
表示从emp 表中查询工资大于等于1000并且小于等于3000的数据行。
2.4 is null关键字
空值(NUll)从技术上来说就是位置的、不确定的值,但空值与空字符串不同,空值是不存在的值,而空字符串是长度为 0 的字符串。
空值代表的是未知的值,但是并不能用空值来互相比较,这点需要特别注意。
SQL> select address from student where address is null;
表示从 student 表中查询住址目前为空值的数据行。
3.逻辑筛选
使用逻辑运算符 AND、OR、NOT可以进行逻辑筛选,可以把多个筛选条件组合起来,这样便于获取更加准确的数据记录。
AND 表示两个表达式之间 “逻辑与” 的关系,需要满足多个两个或者多个表达式才能成立。
OR 表示两个表达式“逻辑或” 的关系,两个表达式中有一个为 true,则这个逻辑表达式的值就为 true。
NOT 表示对表达式执行“逻辑非” 的运算。
SQL> select empno,ename,sal from emp where sal >= 1000 and sal < 3000;
SQL> select empno,ename,sal from emp where sal >= 1000 or sal < 3000;
Tags:oracle查询库
猜你喜欢
- 2024-11-26 Oracle数据库之高级查询一
- 2024-11-26 oracle查询用户的权限
- 2024-11-26 oracle数据库查询Sql语句是否使用索引及常见的索引失效的情况
- 2024-11-26 Oracle查询扩展
- 2024-11-26 连载四:Oracle升级文章大全(完结篇)
- 2024-11-26 Python 操作Oracle数据库常用的方法和工具
- 2024-11-26 分享两个Oracle的shell脚本---一键获得数据库实例状态、参数及包
- 2024-11-26 ORACLE 分页查询整理笔记
- 2024-11-26 详解Oracle 11g如何快速定位到lobsegment、lobindex对应的表
- 2024-11-26 日常运维笔记--给oracle用户授权,使之能查询系统视图