oracle数据库:select基本语法【条件查询】

当我们进行数据查询的时候,往往需要根据一些条件来筛选出我们需要的数据,这时候可以用到条件查询

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是闭区间,也就是说成绩等于6080的也会被查询到。

例5:查询年龄是1820的所有记录:

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函数括号里面有个字符,这个字符后面跟着的第一个字符不会被当作占位符,如上图所示的%,当然下划也可以这样处理。

Guess you like

Origin blog.csdn.net/will__be/article/details/117444999