•WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。
•HAVING 子句用来从分组的结果中筛选行。
对于可以在分组操作之前或之后应用的搜索条件,在 WHERE 子句中指定它们更有效。这样可以减少必须分组的行数。应当在 HAVING 子句中指定的搜索条件只是那些必须在执行分组操作之后应用的搜索条件。
这两个语句有着本质的区别:Where语句用于SQL中有限定条件的地方。比如:
Select * from 表名 where 查询限定条件.
Update,Delete等类似,意思是我要查哪个范围内的数据,要更新哪个范围内的数据和删除哪个范围内的数据;
而having子句用于对分组后的信息进行过滤.用法如下:
select name,age,count(*) from T_Person group by age having count(*)>2.