一、在写SQL时是书写顺序,而不是执行顺序。
1)、from: 从哪些表中筛选
2)、on: 关联夺标查询时,去除笛卡尔积
3)、where: 从表中筛选的条件
4)、group by: 分组依据
5)、having:在统计结果中再次筛选
6)、order by: 排序
7)、limit: 分页
二、SQL的执行顺序:
from → join → on → where → group by → (分组函数,分组函数中的distinct) → having → select → distinct → order by → limit → union。
三、注意:
1)、表一旦起了别名,会覆盖原有的表名,之后只能使用别名。
2)、字段起了别名,只有执行顺序在select之后的才能使用别名,且别名不会覆盖,使用原字段名也是可以的。
3)、MySQL对别名进行了优化,即使group by, having的执行顺序在select之前,也能使用别名,但其他数据库不可以。
本文详细介绍了SQL语句的书写顺序与执行顺序,强调了from、on、where、groupby、having、orderby和limit等关键字的作用。特别指出,MySQL允许在groupby和having中直接使用别名,但并非所有数据库都支持此优化。理解这些概念对于优化查询性能至关重要。
169

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



