MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 数据库 / 正文

Oracle检索数据——筛选查询

2024-11-26 17:36 huorong 数据库 6 ℃ 0 评论

在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查询库

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言