【SQL执行顺序问题。。。。】

[复制链接]
查看11 | 回复9 | 2012-9-19 11:12:55 | 显示全部楼层 |阅读模式
一直没彻底搞明白select,update,insert这三个语句的执行顺序。。。例如select a from ( select b from c ) where ......
谁能说说具体的顺序啊。。。谢谢。。。


回复

使用道具 举报

千问 | 2012-9-19 11:12:55 | 显示全部楼层
什么执行顺序啊???select a from ( select b from c ) where ......和执行顺序有什么关系啊,这是错的,呵呵???
回复

使用道具 举报

千问 | 2012-9-19 11:12:55 | 显示全部楼层
原帖由 dingjun123 于 2010-8-28 12:12 发表
什么执行顺序啊???select a from ( select b from c ) where ......和执行顺序有什么关系啊,这是错的,呵呵???

就是先执行哪个子语句啊,例如 from 的表也是一个select 语句。。。
回复

使用道具 举报

千问 | 2012-9-19 11:12:55 | 显示全部楼层
学校里面学的都忘记了。。。。


回复

使用道具 举报

千问 | 2012-9-19 11:12:55 | 显示全部楼层
from-->where-->group by -->having-->select--> order by
回复

使用道具 举报

千问 | 2012-9-19 11:12:55 | 显示全部楼层
有外连接时情况有所改变,看执行计划就行了。
回复

使用道具 举报

千问 | 2012-9-19 11:12:55 | 显示全部楼层
原帖由 熊猫儿 于 2010-8-28 12:13 发表
就是先执行哪个子语句啊,例如 from 的表也是一个select 语句。。。

晕,当然先执行子查询了啊,不执行子查询,外面的怎么查询啊?sql执行顺序就是
from 对象最先执行,没有对象查什么啊,所以第1步确定要查的对象
然后是where条件过滤,过滤后干其他的事情就方便了是吧
然后有分组的就分组,group by之类的
然后就是计算分组函数,count什么的
现在可以用having过滤分组了
然后order by最后执行,order by必须最后,他保证最后的输出顺序,不最后执行当然不可能
。。。。。。。。。。

如果有分析函数什么的就有点复杂了,分析函数是在order by之前执行,其他所有操作之后执行的,呵呵,所以他的位置一般只能在select和order by中
回复

使用道具 举报

千问 | 2012-9-19 11:12:55 | 显示全部楼层
很基础的东西,以前学习sql server 2005时,看了一本sql server 2005 技术内幕:T-SQL查询 里面说的很全面。
回复

使用道具 举报

千问 | 2012-9-19 11:12:55 | 显示全部楼层
原帖由 ocpdba591 于 2010-8-28 12:21 发表
有外连接时情况有所改变,看执行计划就行了。

谢谢。。。
回复

使用道具 举报

千问 | 2012-9-19 11:12:55 | 显示全部楼层
原帖由 dingjun123 于 2010-8-28 12:22 发表
晕,当然先执行子查询了啊,不执行子查询,外面的怎么查询啊?sql执行顺序就是
from 对象最先执行,没有对象查什么啊,所以第1步确定要查的对象
然后是where条件过滤,过滤后干其他的事情就方便了是吧
然后有分组的就分组,group by之类的
然后就是计算分组函数,count什么的
现在可以用having过滤分组了
然后order by最后执行,order by必须最后,他保证最后的输出顺序,不最后执行当然不可能
。。。。。。。。。。

如果有分析函数什么的就有点复杂了,分析函数是在order by之前执行,其他所有操作之后执行的,呵呵,所以他的位置一般只能在select和order by中

等遇到看不懂的sql再看看咋回事。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行