SQL Select 语句完整的执行顺序:
1、from 获取不同数据库表的数据;
2、where 子句跟随筛选条件,对数据进行过滤;
3、group by 子句可以将数据根据分组字段进行分组处理;
4、可使用聚集函数对数据进行汇总计算;
5、可使用 having 子句筛选分组结果;
6、select 后面可设置返回的数据字段;
7、使用 order by 对结果集进行排序 。
SQL 语言不同于其他编程语言的最明显特征是处理代码的顺序 。这是一种结构话查询语言,在大多数据库语言中,代码按编码顺序被处理 。但在 SQL 语句中,第一个被处理的子句式 FROM,而不是第一出现的 SELECT 。SQL 查询处理的步骤序号:
1.FROM 左表表名
2.<join_type> JOIN 右表表名
3.ON <join_condition>
4.WHERE <where_condition>
5.GROUP BY <group_by_list>
6. WITH {CUBE | ROLLUP}
7.HAVING <having_condition>
8. SELECT
9.去重DISTINCT
10.排序 ORDER BY <order_by_list>
11. <TOP_specification> <select_list>
以上每个步骤都会产生一个虚拟表,而该虚拟表又被用作下一个步骤的输入 。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用 。只有最后一步生成的表才会会给调用者 。如果没有在查询中指定某一个子句,
将跳过相应的步骤 。
逻辑查询处理阶段简介:
1、 FROM:对 FROM 子句中的前两个表执行查询获得笛卡尔积(交叉联接),生成虚拟表 t1 。
2、 ON:对 t1 应用 ON 条件,只有那些使为真才被插入到 t2 。
3、 OUTER (JOIN):如果指定了 OUTER JOIN(相对于 CROSS JOIN 或 INNER JOIN),保留表中未找到匹配的行将作为外部行添加到 t2,生成 t3 。如果 FROM 子句包含两个以上的表,则对上一个联接生成的
结果表和下一个表重复执行步骤 1 到步骤 3,直到处理完所有的表位置 。
【mysql查询小总结】
推荐阅读
- 5个逆向思维小故事,很短,却改变了很多人?十个逆向思维小笑话
- 刘备就是个小人伪君子,刘备是否是一个虚伪的人
- 女性尿道口疼小便不疼
- 每次尿完小腹疼痛
- 尿血腰疼是什么原因女
- 净水器|小米米家净水器1000G正式开售:3.5秒接满一杯水 5年不用换RO滤芯
- 侦探小故事大全及答案?简单侦探故事
- 为什么刘邦这种小人能得天下?历史上的刘邦到底是不是个小人
- 硕士研究生|北京航空航天大学硕士研究生被裁,找工作的教训小伙伴一定要注意
- 人生感悟的小故事大道理?人生哲理故事及感悟200大道理_1