mysql单表部分统计表_5000字总结MySQL单表查询,新手看这一篇足够了!

4.过滤

工作用的数据库表中一般包含大量数据,很少会一次全部查询,所以会使用where子句加过滤条件来查询我们需要的数据。

认识操作符

比较操作符

=(等于),<>、!=(不等于),=(大于等于),>(大于),between(在指定两个值之间)

逻辑操作符

and(逻辑与),or(逻辑或),in(指定条件范围),not(逻辑非)

匹配操作符

like,regexp

单条件匹配

select name from eg where years > 3;

AAffA0nNPuCLAAAAAElFTkSuQmCC

select name, years from eg where years != 1; # 不匹配查询

AAffA0nNPuCLAAAAAElFTkSuQmCC

select name from eg where bon is null; # 空值查询

AAffA0nNPuCLAAAAAElFTkSuQmCC

多条件匹配

select name, post, sal from eg where post=‘clerk’ and sal>10000;

AAffA0nNPuCLAAAAAElFTkSuQmCC

select name, years from eg where sal between 10000 and 20000; # 范围值查询

AAffA0nNPuCLAAAAAElFTkSuQmCC

select name, years from eg where years not in (1, 3, 5); # 指定条件范围,并进行非范围筛选

AAffA0nNPuCLAAAAAElFTkSuQmCC

搜索模式

前面提到的匹配方式都是针对已知值,但是实际情况中并不总是这样,有时候我们需要匹配一些字面值,但是我们可能并不清楚她们的全貌,这里就需要用到搜索模式,先认识下简单的通配符:%(任何字符出现任意次数),_(匹配单个字符),这里我们会用到like和regexp两种操作符,一起来看下。

select name from eg where name like ‘a%’; # 查询姓名以a开头的员工

![](https://img-blog.csdnimg.cn/20200419213508246.png)

select name from eg where name like '_a%'; # 查询姓名第二个字母为a的员工

![](https://img-blog.csdnimg.cn/20200419213508369.png)

select name from eg where name like 'an';

select name from eg where name regexp 'an';

![](https://img-blog.csdnimg.cn/20200419213508489.png)

关于regexp的用法这里会涉及到正则表达式,因为正则的内容还比较多,这篇文章里我们只先做一个简单了解,后面会在另一个专题来说明,这里我们注意一下regexp和like的一些使用区别就好,通过上面的例子我们可以看到like匹配的是整个列值,所以当'an'只在列值中出现时,like是不会返回对应值的,而regexp操作时只要被匹配的文本在列值里出现了,那么相应值就会被返回。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值