• 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开始计算)

     

  • 相关阅读:
    数据库及ADO.NET学习(七)
    暑期JAVA学习(32)Thread的常用方法
    金蝶云星空和管易云接口打通对接实战
    LiferayPortal JSONWS反序列化漏洞(CVE-2020-7961)分析
    应广PMC131 SOP16 16pin八位单片机
    【华为OD机试真题 python】 比赛【2022 Q4 | 100分】
    Centos实现Mysql8.4安装及主主同步
    头歌答案--数据持久化(非数据库)
    RHCE---shell 基本知识
    大数据技术训练舱:Redis的分布式实践(上)从零开始编译、安装、配置Redis6,规范化搭建Java工程测试
  • 原文地址:https://blog.csdn.net/m0_65601072/article/details/127737516