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 对其进行了扩充,其他数据库不支持
本文详细阐述了SQL查询语句的执行顺序,从FROM、WHERE到GROUP BY、HAVING、SELECT、DISTINCT等步骤,强调了WHERE与GROUP BY的使用限制,并指出MySQL中的特殊情况。了解这一顺序对于优化SQL性能和避免错误至关重要。
1569

被折叠的 条评论
为什么被折叠?



