sql中having与where的区别在哪?

我什么时候用having 什么时候用where?有没有人能一句话表达一下这两个语句的区别

额,我得用两句话。
“Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。

“Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。

如果你对何时应该使用WHERE,何时使用HAVING仍旧很迷惑,请遵照下面的说明:
WHERE语句在GROUPBY语句之前;SQL会在分组之前计算WHERE语句。
HAVING语句在GROUPBY语句之后;SQL会在分组之后计算HAVING语句。

楼上+1
比较直观的例子,比如有5门考试,要查询参考课程大于等于3的人的话,having一次查询就行了,where还得嵌套一层