当我们进行数据查询的时候,往往需要根据一些条件来筛选出我们需要的数据,这时候可以用到条件查询
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
函数括号里面有个字符,这个字符后面跟着的第一个字符不会被当作占位符,如上图所示的%
,当然下划也可以这样处理。