当我们进行数据查询的时候,往往需要根据一些条件来筛选出我们需要的数据,这时候可以用到条件查询
1,条件查询
语法:
select 字段1,字段2... from 表名 where 条件1,条件2...
其中关键字where后面接我们查询的条件。
1.1 条件运算
条件运算常用运算符有:=、<、>、>=、<=、<>、!=、between and、in
还是之前的学生表:

例1:查询性别为女的信息:
select * from student where sex = '女';
这里*表示展示所有符合条件的信息,可以用具体的某个字段替换*,这里不展示。看看结果:

翠花被正确查询出来了。
例2:查询英语成绩大于80分的所有记录:
select * from student where english > 80;
看看结果:

查询成功。
例3:查询数学成绩在60到90之间的记录:
select * from student where math between 60 and 90;
结果如下图所示:

注意between是闭区间,也就是说成绩等于60和80的也会被查询到。
例5:查询年龄是18和20的所有记录:
select * from student where age in (18,20);
结果:

in后面括号里放有限个数值,并不是表示区间。
其他的就不一个个展示了,提一下<>表示不等于,以及^=和!=也是不等于.
1.2 条件连接运算
条件连接运算符一共三种:and、or、not
and示例:查询数学成绩大于60并且英语成绩大于80的所有记录:
select * from student where math > 60 and english > 80;
要同时满足两个条件的才会被查询出来,结果如下图所示:

or实例:查询年龄大于19或者英语成绩小于80的所有记录:
select * from student where age > 19 or english < 80;
or表示只要满足其中一个条件,就会被查询出来。

比如上图所示的,虽然age不满足,但是english满足条件,就被查询出来了。
not示例:查询sex为女的所有记录:
select * from student where not sex = '男';
可以看得出来not是取反的意思,看一下查询结果:

1.3 null运算nvl()
这里因为表中数据设置了非空,这里只记录一下null的笔记。
判断一个数据是否为空的时候,有这些方法:is null , is not null , not ... is null
网图例子:

这里解释一下,is null是查询值为null的记录,is not null 是查询值不是null的记录,not is null 是对is null取反的记录,not 开头是可以查询到0值的。

当某个值为空时,还能用nvl函数给一个特定的值,例如nvl(math,res),表示如果math成绩不是空,就返回math原本的值,如果为null值,就返回res这个值,比如把res设置为0。
1.4 模糊查询 like
%表示占位符,可以占多个位置_表示占位符,只能占一位
例如:查询名字你们带王字的
select * from student where name like '%王%';
前后百分号表示只要名字带了王字,就要被查询出来。

例如查询名字为张某【张后面只有一个字符】的所有记录:
select * from student where name like '张_';
下划线表示一个占位符,只占一个字符。

这里还有更多组合,比如:某花:_花,名字里面带某四,并且某四在开头:_四%。可以自行试验,这里不展示了。
如果查询记录本身就带有%,并不是表示占位符,可以使用escape函数名,网图示例:

这里说明一下,escape函数括号里面有个字符,这个字符后面跟着的第一个字符不会被当作占位符,如上图所示的%,当然下划也可以这样处理。
博客主要介绍了Oracle数据库中的条件查询。包括条件运算,如用运算符筛选数据;条件连接运算,有三种运算符;null运算nvl(),用于判断数据是否为空及赋值;模糊查询like,介绍了占位符%和_的使用,还提及escape函数处理特殊字符。

6568

被折叠的 条评论
为什么被折叠?



