白话Excel函数公式 Office易学宝微视频教程合集(Excel+Word+PPT)
笨办法学VBA(从入门到精通) 高效办公必会的Office实战技巧
财务总监的Excel私房课 网易云课堂-Excel数据透视表应用大全
Excel图表神技
查看: 1756|回复: 6

[课时三] 关于sql语句执行的疑问

[复制链接]
发表于 2011-6-15 23:39:21 | 显示全部楼层 |阅读模式
在学习sql语句的过程中,对sql语句的执行问题非常恼火,搞不清楚,通过与E组长的讨论,结果还是没有定论,不过我们得出了下面的一些想法,请老师和童鞋看看对不对,指点出我们的错误和误区:

下面有两个语句,执行的效果是一样的,我们对语句执行过程进行了分析,不知道这样分析对不对:

语句一:
select a.*,b.*
  from a,b
where a.id=b.id


语句二:
select a.*,b.*
  from a
  join b
    on a.id=b.id


语句一及其分析(我们认为语句一没有形成笛卡尔积):
select a.*,b.*
  from a,b
where a.id=b.id


我们的分析:导入a表和b表 ,然后游标在A第一条,然后按顺序根据where条件筛b的所有记录,提出符合的,然后a游标到第二条,筛b所有,循环下去,最后的到一张结果表


语句二及其分析:(我们认为语句二形成笛卡尔积):
select a.*,b.*
  from a
  join b
    on a.id=b.id


我们的分析:将a表和b表求笛卡尔积,然后用on条件,对生成的表逐条记录进行判断,符合条件的记录形成一张结果表。

请大家指点,我们的分析错在哪里,正确的应该是怎样的呢?
回复

使用道具 举报

发表于 2011-6-16 00:19:01 | 显示全部楼层
支持下,我们好学的wbzxz同学。
上面是数据库门外汉的胡猜。

烦请高手留步,耐心的校正下我们的误区,免得我们在孩童时刻幼小心灵就这么自个儿扭曲了。:lol

其实关键是SQL运行原理和执行顺序了,据某高高高高人说和数据库原理有关,不知有没这方面灰常基基基基础的材料,学习学习。

讲解也可以,板凳仰望中。。。

[ 本帖最后由 xmyjk 于 2011-6-16 00:23 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2011-6-16 09:19:53 | 显示全部楼层
抢个位置 聆听教诲
回复 支持 反对

使用道具 举报

发表于 2011-6-17 14:39:34 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2011-6-17 15:02:12 | 显示全部楼层
我觉得,对于像我这样从没接触过sql的,除了介绍一下sql的使用环境以外,还应该重点介绍一下sql的语法,及书写环境,虽然有课件,但是照着葫芦画瓢也是错误百出,直接将课件的一句复制过去就没事儿,原因在哪儿,应该就是不懂得应该怎样写语句。所以,这是我学习以来,最艰难的一次。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-19 23:09:21 | 显示全部楼层
第一、   单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的);然后根据SELECT的选择列选择相应的列进行返回最终结果。

第二、   两表连接查询:对两表求积(笛卡尔积)并用ON条件和连接类型进行过滤形成中间表;然后根据WHERE条件过滤中间表的记录,并根据SELECT指定的列返回查询结果。
回复 支持 反对

使用道具 举报

发表于 2012-3-1 14:31:42 | 显示全部楼层
数据库系统原理那本书比较基础,可以看看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 入学

本版积分规则

快速回复 返回顶部 返回列表