sql中having 和 where的区别

本文最后更新于:5 个月前

  • having 是对结果进行筛选

    having是一个过滤声明,所谓过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用“聚合函数”。

  • where 是在查询数据的时候直接对数据库进行筛选

    where是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用“聚合函数”。

  • 聚合函数,是对一组值进行计算并且返回单一值的函数。聚合函数一定是返回一个结果。

  • where后面之所以不能使用聚合函数是因为where的执行顺序在聚合函数之前

  • having 是对查出来的结果进行过滤,这样就不能对没有查出来的值进行过滤。