SQL好习惯和执行原理
一:查询的逻辑执行顺序
(1) FROM
(2) ON
(3) JOIN
(4) WHERE
(5) GROUP BY
(6) WITH {cube | rollup}
(7) HAVING
(8) SELECT (9) DISTINCT (11)
(10) ORDER BY
标准的SQL 的解析顺序为:
(1).FROM 子句 组装来自不同数据源的数据
(2).WHERE 子句 基于指定的条件对记录进行筛选
(3).GROUP BY 子句 将数据划分为多个分组
(4).使用聚合函数进行计算
(5).使用HAVING子句筛选分组
(6).计算所有的表达式
(7).使用ORDER BY对结果集进行排序
二 执行顺序:
1.FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1
2.ON:对vt1表应用ON筛选器只有满足< join_condition> 为真的行才被插入vt2
3.OUTER(join):如果指定了 OUTER JOIN保留表(preserved table)中未找到的行将行作为外部行添加到vt2 生成t3如果from包含两个以上表则对上一个联结生成的结果表和下一个表重复执行步骤和步骤直接结束
4.WHERE:对vt3应用 WHERE 筛选器只有使< where_condition> 为true的行才被插入vt4
5.GROUP BY:按GROUP BY子句中的列列表对vt4中的行分组生成vt5
6.CUBE|ROLLUP:把超组(supergroups)插入vt6 生成vt6
7.HAVING:对vt6应用HAVING筛选器只有使< having_condition> 为true的组才插入vt7
8.SELECT:处理select列表产生vt8
9.DISTINCT:将重复的行从vt8中去除产生vt9
10.ORDER BY:将vt9的行按order by子句中的列列表排序生成一个游标vc10
11.TOP:从vc10的开始处选择指定数量或比例的行生成vt11 并返回调用者
分享到:
相关推荐
SQL语句的执行原理及顺序,好好学习吧!哈哈!
SQL查询原理及执行顺序,对数据库优化有一定的帮助。
oracle sql语句的执行过程和原理介绍,优化器模式,访问table的方式,表的连接方式及索引分类
关于sql server的逻辑执行顺序,和一些语句的优化,提高查询效率,很不错的一篇文章,分享给大家。
sqlserver 批量执行指定文件夹下面的sql文件。 非常快捷方便,使用于不同类型数据库之间的数据迁移
##通过sqlcmd执行sql文件 由于sql文件过大,超过了100M,再数据库的窗口执行,结果超出内存了,对于特别大的sql文件可以使用sqlcmd进行执行 ###1.打开cmd窗口 运行–cmd–进入到sql文件所在的文件夹。 如果是win7可...
C# 执行SQL SERVER SQL脚本
该文档主要是作者把亲身运用SQL的一些好的习惯与我们进行分享,是一份很不错的学习文档!
WEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB页面执行SQLWEB...
此BAT脚本可以帮助开发人员将某文件夹下所有SQL脚本按文件名依次在指定数据库中批量执行。并且生成日志文件,可查看执行过的所有脚本名称和错误信息。 注意: (1) 使用前需确保已将sqlcmd加入到系统环境变量中。 (2...
用于SQLServer的sql脚本批量执行,会记录每次执行的脚本和执行结果。可以调整脚本执行顺序,支持脚本可视化,及关键字变色
java批量执行SQL java批量执行SQL.txt
Hive优化以及执行原理,一位前辈总结的hive知识,个人觉得非常有用,资源难找,现在贡献给大家,独乐乐不如众乐乐。
TSQL_Express【批量执行SQL】批量执行sql文件工具 ,批量执行SQL
通过配置数据库连接信息和要执行的sql语句,可实现定时执行多个sql语句。 所要执行的语句只能是写死的,可支持sqlserver mysql oracle。 配置说明: config/sys.properties 中指定数据库类型及连接信息,执行间隔...
本文主要讲解了一条sql执行到底是怎样执行的,即SQL语句的执行原理,包含的内容比较深入,需要对数据库内部的结构作深入的学习才可以完全理解,适合于中高级数据库管理员。
详细描述了SQL的工作原理,是面试的宝典,例子都非常经典!
批量执行SQL脚本,多个SQL脚本一起执行。
SQL语句执行原理及性能优化.pdf
1、批量执行SQL脚本文件; 2、文件拷贝操作。 其中,App.config为工具配置文件, ;DataBase = master;User ID=sa; password="/> 上述 ;DataBase = master;User ID=sa; password="/>中,value的值为数据库...