书写顺序和执行顺序是不同的
select 5 对数据处理完毕之后,根据select后面定义的内容显示相应的字段信息
from 1 第一步找到要查询的表是哪张/哪几张
where 2 遍历表中的全部数据,把不符合where条件的筛除
group by 3 筛掉不符合条件的单值之后,进行数据的分组
having 4 对分组之后不满足条件的数据进行筛除
order by 6 修改数据的显示顺序
where和having的区别:
where是对单值进行限制和筛除,having是对分组之后的小组进行限制。
where先执行,然后再分组,然后再进行分组之后having筛选。
where中不能出现组函数。在执行到where的时候还没有执行到group by子句,没有分组就意味着没有办法进行组函数运算。