SQL中where和having有什么区别

58次阅读
没有评论

共计 828 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

本篇内容主要讲解“SQL 中 where 和 having 有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“SQL 中 where 和 having 有什么区别”吧!

概念

where

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

聚合函数

对一组值执行计算,并返回单个值,也被称为组函数,经常与 SELECT 语句的 GROUP BY 子句的 HAVING 一同使用。例如

AVG 返回指定组中的平均值 COUNT 返回指定组中项目的数量 MAX 返回指定数据的最大值。MIN 返回指定数据的最小值。SUM 返回指定数据的和,只能用于数字列,空值被忽略。

having

having 是一个过滤声明,是在查询数据库结果返回之后进行过滤,即在结果返回值后起作用,与聚合函数共同使用。

区别

使用 group by 进行过滤,则只能使用 having。

执行顺序:where 聚合函数 (sum,min,max,avg,count) having,故 where 不使用聚合函数。

举个例子

职员表

SQL 中 where 和 having 有什么区别

 1、成绩大于 8 的有哪些?

使用 where

SQL 中 where 和 having 有什么区别

  使用 having

SQL 中 where 和 having 有什么区别

  报错,因为 having 是对已过滤后的结果,进行筛选,但是筛选出没有 employee_score 这个值,所以报错,如果加上则可以查出。

 SQL 中 where 和 having 有什么区别

故 where 和 having 很多时候不能随意替代,主要是过滤对象不同。

2、每个部门年龄大于 20 的最高最低成绩?

SQL 中 where 和 having 有什么区别

  使用 where 也可以

SQL 中 where 和 having 有什么区别

  但是需要注意执行顺序

SQL 中 where 和 having 有什么区别

注意事项

在编写 sql 语句时,要注意 where 和 group by 的执行顺序,where 应在前执行,group by 在后,否则会报错。

总结

到此,相信大家对“SQL 中 where 和 having 有什么区别”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计828字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)