select 语句定义:
<SELECT clause>
[<FROM clause>]
[<WHERE clause>]
[<GROUP BY clause>]
[<HAVING clause>]
[<ORDER BY clause>]
[<LIMIT clause>]
select 语句的执行顺序
- from
- join
- on
- where
- group by (可以使用 select 中的别名,后面的语句中都可以使用)
- count、sum、svg…
- having
- select
- distinct
- order by
- limit
1、确定范围:确定查询数据范围(1->2->3)
2、数据处理:过滤不符合的数据,对需要的数据进行分组统计,过滤不符合的统计结果(4->5->6->7)
3、返回结果:确定返回的列,去重,确定返回条数(8->9->10->11)
特别注意:
1、where 语句和 group by 语句后面不可以使用聚合函数(count、sum、svg…)
2、mysql 中 group by 语句及其之后的语句可以使用 select 中的别名
- 根据 sql 语句执行顺序,group by 在 select 之前执行,所以 group by 是无法使用 select 后面的别名的
- mysql 中 group by 之所以能使用 select 后面的别名是因为 mysql 对其进行了扩充,其他数据库不支持