sql where 和 having的区别

   日期:2020-05-06     浏览:83    评论:0    
核心提示:1.类型:“Where”是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在数据库

1.类型:

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

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

2.使用的角度:

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

如下面这个sql语句:select sum(score) from student group by student.sex where sum(student.age)>100;

having既然是对查出来的结果进行过滤,那么就不能对没有查出来的值使用having,

如下面这个sql语句: select student.id,student.name from student having student.score >90;

用的地方不一样
where可以用于select、update、delete和insert into values(select * from table where …)语句中。
having只能用于select语句中
执行的顺序不一样
where的搜索条件是在执行语句进行分组之前应用
having的搜索条件是在分组条件后执行的
即如果where和having一起用时,where会先执行,having后执行
子句有区别
where子句中的条件表达式having都可以跟,而having子句中的有些表达式where不可以跟;having子句可以用集合函数(sum、count、avg、max和min),而where子句不可以。
总结
1.WHERe 子句用来筛选 FROM 子句中指定的操作所产生的行。
2.GROUP BY 子句用来分组 WHERe 子句的输出。
3.HAVINg 子句用来从分组的结果中筛选行

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服