学SQL查询语句的时候,需要了解一下sql的执行顺序:
from-> on-> join-> where-> group by-> having-> select-> distinct-> order by-> limit
在 SQL 查询语句中,通常会按照以下顺序执行各个关键字及子句:
FROM:指定要查询的数据表,生成虚拟表以供后续操作使用。
ON / JOIN:指定连接条件,根据条件将两个表中的行匹配起来。ON 用于指定连接条件(一般用于 INNER JOIN),而 JOIN 则是连接表的关键字。
WHERE:对从 FROM 子句得到的虚拟表进行筛选,只保留满足条件的行。
GROUP BY:将数据按照指定的列进行分组,生成若干个分组。
HAVING:对分组后的结果进行筛选,只保留满足条件的分组。
SELECT / DISTINCT:选择要查询的列或表达式,生成查询结果集。DISTINCT 用于去重。
ORDER BY:对结果集按照指定的列进行排序。
LIMIT:限制返回结果的行数,常用于分页查询。
这个顺序描述了 SQL 查询语句的逻辑执行顺序,但实际数据库系统在执行查询时会根据查询优化器和执行计划的策略进行调整,以提高查询性能。
因此,虽然按照这个顺序编写查询语句有助于理解和维护,但并不意味着数据库系统就会严格按照这个顺序执行。
在实际使用中,建议根据具体情况编写清晰、易读的 SQL 查询语句,并在需要时使用索引、优化器提示等手段来优化查询性能。