SQL执行顺序

来源:互联网 发布:跨平台app开发 知乎 编辑:程序博客网 时间:2024/06/05 13:30

sql语句作为结构化查询语言,从语法构成和逻辑上相对简单明了,简单举例基本语法样式:

select ——[column]
from ——-[table]
where ——-[检索条件]
group by ——[将数据按组划分]
having ——-[分组过滤条件]
order by——-[将数据进行排序]

标准的SQL语句的执行顺序:
1、首先执行from子句,如果from后有多个table,先组装不同的数据源到临时表T1;
2、根据where后的条件对临时表T1进行筛选过滤,生成临时表T2;
3、按照group by *对临时表T2的数据进行分组,分组后生成临时表T3;【如果没有用到聚合函数,当然也可以不分组】
4、如果有having子句,接下来按照子句条件过滤临时表T3的数据,再生成临时表T4;
5、执行select,按照select所选择的列(column)对临时表T4进行过滤,先执行聚合函数,然后执行distinct去重复行,过滤后生成临时表T5;【如果select后用到聚合函数,则先进行计算。聚合函数也就是sum,count,avg,min,max等函数。】
6、order by ,按照order by 条件指定列对临时表T5的数据进行升序或者降序(ASC为升序,DESC为降序,默认为升序)排序后生成临时表T6;
7、top,按照top的条件从临时表T6中拉出对应数据,生成临时表T7,并把数据呈现给用户。【top命令不是所有数据库都支持的】