美文网首页MySQL
23-WHERE和HAVING的区别

23-WHERE和HAVING的区别

作者: 紫荆秋雪_文 | 来源:发表于2022-08-19 16:42 被阅读0次

一、区别一

  • WHERE 可以直接使用表中的字段作为筛选条件,但不能使用分组中的计算函数作为筛选条件;
    HAVING 必须要与 GROUP BY 配合使用,可以把分组计算的函数和分组字段作为筛选条件
  • 这决定了,在需要对数据进行分组统计的时候,HAVING 可以完成 WHERE 不能完成的任务。这是因为,
    在查询语法结构中,WHERE 在 GROUP BY 之前,所以无法对分组结果进行筛选。HAVING 在 GROUP BY 之
    后,可以使用分组字段和分组中的计算函数,对分组的结果集进行筛选,这个功能是 WHERE 无法完成
    的。另外,WHERE排除的记录不再包括在分组中

二、区别二

  • 如果需要通过连接从关联表中获取需要的数据,WHERE 是先筛选后连接,而 HAVING 是先连接
    后筛选。 这一点,就决定了在关联查询中,WHERE 比 HAVING 更高效。因为 WHERE 可以先筛选,用一
    个筛选后的较小数据集和关联表进行连接,这样占用的资源比较少,执行效率也比较高。HAVING 则需要
    先把结果集准备好,也就是用未被筛选的数据集进行关联,然后对这个大的数据集进行筛选,这样占用
    的资源就比较多,执行效率也较低

三、小结

image.png

相关文章

  • 23-WHERE和HAVING的区别

    一、区别一 WHERE 可以直接使用表中的字段作为筛选条件,但不能使用分组中的计算函数作为筛选条件;HAVING ...

  • SQL中where与having的使用

    SQL中where与having的使用 where和having的区别 聚合函数和group by where 和...

  • where 和 having区别

    1. 前言 在 MySQL 中使用 select 查询语句的时候,一般都会加上 where 语句或者 limit ...

  • having 和 where的区别

    区别1 where是从数据表中的字段直接进行的筛选的。 having是从 前面筛选的字段再筛选 eg:select...

  • Having和Where的区别

    “Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Whe...

  • WHERE和HAVING的区别

    1、处于的语句不一样 WHERE可以用于增删改查,但是HAVING只能用于SELECT。 2、HAVING只能用于...

  • MySQL之Where和Having的区别

    MySQL之Where和Having的区别 对于使用where和having,相信很多人都有过困扰,今天就来讲一下...

  • 说说WHERE,HAVING和ON的区别?

    这三个关键字我们平时经常使用,他们一个共同点是:都可以用来过滤数据。 那不同点是什么呢?我们先来看看WHERE和H...

  • 常用SQL相关

    1. where和having的区别? where和having都可以使用的场景:当筛选条件在要查询的字段中都有的...

  • Mysql中having和where的区别

    having子句与where都是设定条件筛选的语句,有相似之处也有区别。 having与where的区别:havi...

网友评论

    本文标题:23-WHERE和HAVING的区别

    本文链接:https://www.haomeiwen.com/subject/udyugrtx.html