普通网友 2010-05-06 19:04
浏览 350
已采纳

一条SQL的执行原理

[size=medium]问题: SELECT * FROM TABLE a WHERE a.firstname='xiaoxin' AND a.lastname='niutou' 这个SQL的执行逻辑已经原理谁知道?

     是先根据条件a.firstname='xiaoxin'扫描得到一个结果A,然后根据条件a.lastname='niutou'得到另一个结果B,最后取A和B的交集 对吗?

    还是所先得到A,然后在A的基础上根据条件B得出最终结果?

请各位软件工友不吝赐教! (希望得到权威回答)[/size]

  • 写回答

3条回答 默认 最新

  • qwe_rt 2010-05-06 19:28
    关注

    这个问题可以结合SQL语句的理论基础来解释。参考权威书籍《数据库系统-设计,实现与管理》。
    首先来理解where字句的本质

    where字句术语称“行选择”,用来[color=red][size=medium]限制[/size][/color]仅检索某些行。

    然后我们来理解sql语句理论中的关系运算----限制

    限制又称为选择,是一个一元操作,它作用于单个关系(亦称表),得到一个新的关系(它由满足特定条件(亦称[size=medium]谓词[/size])的元组组成)。

    再然后来理解刚才说到谓词

    在该书中强调了一点,就是谓词,我们可以组成复杂的谓词,怎么组成复杂的谓词了,

    通过逻辑运算符“与”、“或”、“非”来生成更为复杂的谓词。

    最后,上面说的“选择或者限制” 与 交集有本质的区别。详细你可以看看该书中的65页的两者操作的区别。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺