| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1083 人关注过本帖
标题:询问一个关于SELECT执行过程的语句
取消只看楼主 加入收藏
luxuluxu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
询问一个关于SELECT执行过程的语句
SORRY小弟分数不够 请见谅




SELECT 表1.* FROM 表1,表2 WHERE 表1.字段1 = 表2.字段1
 
--------------
我在网上搜索到这个解释

分析器会先看语句的第一个词,当它发现第一个词是SELECT关键字的时候,它会跳到FROM关键字,然后通过FROM关键字找到表名并把表装入内存。接着是找WHERE关键字,如果找不到则返回到SELECT找字段解析,如果找到WHERE,则分析其中的条件,完成后再回到SELECT分析字段。最后形成一张我们要的虚表。  
其它的先不说了,只说WHERE。  
wHERE关键字后面的是条件表达式。如果学过C语言等编程语言就会知道,条件表达式计算完成后,会有一个返回值,即非0或0,非0即为真(true),0即为假(false)。同理WHERE后面的条件也有一个返回值,真或假,来确定接下来执不执行SELECT。  


问:

根据上面的解释 select语句执行的过程是 分析器检查第一个关键词是否为select 如果是select跳转到from关键词 并且把from后面跟随的表名对应的表装入内存,装入后跳转到where关键字 先对两表进行笛卡尔积 并生成一个两表对应关系的虚表
但是后面是如何执行的


--------------

我主要是想知道 相对来说更深层的select执行过程

我不清楚后续的执行过程,还请各位讲解一下。

其包括生成虚表后 where的判断条件如何筛选出虚表中匹配的数据 以及select是如何识别并且选择出匹配数据的对应元祖以及字段的
搜索更多相关主题的帖子: SELECT 语句 询问 
2010-07-16 12:04
luxuluxu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-16
收藏
得分:0 
- - 谢谢楼上的 但是这些我已经明了

我只是想知道一个完整的工作流程
2010-07-16 12:25
快速回复:询问一个关于SELECT执行过程的语句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023949 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved