SQL 是一种声明式语言,与其他语言相比它的最大特点是执行顺序-并非按照语法顺序来执行。因此很多程序猿看到SQL就头疼,我之前也是这样,后来看到一篇文章后豁然开朗-地址。
理解了SQL的执行顺序无疑对我们学习SQL有很大的帮助。标准的SQL的解析顺序为:
FROM(组装来自不同数据源的数据)->WHERE(对数据源进行指定条件的筛选)->GROUP BY(对数据源进行分组)->聚合函数进行计算->HAVING(对分组结果进行筛选)->计算所有表达式->ORDER BY(对结果进行排序);每个步骤都会产生一个虚拟表,该虚拟表用于下一个步骤的输入。
下面一个比较复杂的SQL语法表示,通过它来进一步理解SQL的执行顺序 。
(08)SELECT (09)DISTINCT (11)<Top num> <column name> (01)FROM [Left_table] (03)<join_type> JOIN [Right_Table] (02)ON join_condition> (04)WHERE <where_condition> (05)GROUP BY <group_by_list> (06)WITH <CUBE |ROLLUP> (07)HAVING <having_condition> (10)ORDER BY <order_by_column_list>
上面的sql语句执行顺序如下:
最后,希望对大家有帮助。ps:好久没写博客了,怪自己太懒了,自己要坚持下去
请关注我的github:https://github.com/khadron
时间: 2024-11-05 13:38:09