mysql数据库基本操作中where条件查询

目录

1、条件查询where

2、同一行的两个列进行比较

3、in 

4、% 

5、_下划线 

6、limit


1、条件查询where

针对查询结果,按照一定的条件进行筛选!!!

通过where指定一个条件,把查询到的每一行都带入到条件中,

  • 看条件是真还是假,真->保留到临时表,假->舍弃

  • 在SQL中 = 又变回“比较相等”(只在where子句中) 
  • 使用 = 来比较某个值和NULL的相等关系,结果还是NULL,NULL又会被当成false
  • 所以就有了 <=>  针对NULL特殊处理

         因为NULL和任何数据进行运算都是NULL,这里NULL<60结果还是NULL,当成了false,不打印。解决方法:加个条件or,带上NULL

2、同一行的两个列进行比较

 注意:where字句不能使用列的别名来比较

         内部原理解释:mysql里执行查询操作时,先针对每行记录计算条件,并按条件筛选,满足条件的记录才会取出对应的列,并且计算里面的表达式(生成别名)——先where条件筛选再as total起别名 。

所以先开始where的时候还没有生成total,这个条件都不认识,那么计算机自然会报错

逻辑运算符AND

查询语文成绩大于80且数学成绩大于80的同学

逻辑运算符OR

 查询语文成绩大于80或者数学成绩大于80的同学

技巧:条件中有and和or,先计算and再算or。但是一般不建议记优先级,最好的办法是加括号()

between...and...

  between A and B  ——> [A,B] 左右都是闭区间

查询数学成绩是30或者55或者66的同学

3、in 

 用in更方便

4、% 

 查询姓马的同学的成绩(开头第一个字是马)

%可以表示任意字符(0个也是),以马开头的name都可以被查出来

  • 马%:以马开头的
  • %马:以马结尾的
  • %马%:无论开头还是结尾,有马就行

 

5、_下划线 

 _下划线,匹配任意一个字符

一个下划线就是一个字符

 

 注意:模糊查询like对数据库来说开销还是比较大的

 mysql支持的模糊匹配功能非常有限

实际开发中,可能会遇到更复杂的模糊匹配

可能会描述一些更复杂的规则,某某字符出现在什么位置范围,重复出现的次数。。。。

这就需要正则表达式来描述这种字符串的规则

正则表达式:使用一些特殊的规则,来描述一个字符串长啥样,那么查询或进行其他操作时,就可以按照这套规则来进行匹配。

 解决方法:使用<=>和NULL比较;

         is null 要求只能比较一个列是否为空,而<=>可以直接比较两个列,一行里有两列都是null也可以查询出来。

  • 条件查询不仅仅是搭配select使用,update/delete也会搭配where子句,对应的条件用法也是完全相同的。
  • 通过条件来对结果集合进行限制,以防止select * 的卡死

6、limit

限制查询结果的数量limit

直接在查询语句的末尾加上limit指定数字N,N表示这次查询最大结果的数量。

在数据库中,分页查询主要就是通过limit来实现的。

搭配offset就可以指定从第几条开始筛选了,(offset的值从0开始计算)

 

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值