网站首页 > 技术文章 正文
在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;
猜你喜欢
- 2024-10-27 Oracle检索数据——简单查询 oracle查询技巧
- 2024-10-27 Oracle查询扩展 oracle查询空间大小
- 2024-10-27 Oracle递归查询 oracle递归查询下级
- 2024-10-27 Oracle 分页查询与数据去重深入理解
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)