sqlserver 表 等值连接 操作的执行过程

sqlserver 表 等值连接 操作的执行过程

ID:15516995

大小:70.50 KB

页数:7页

时间:2018-08-03

sqlserver 表 等值连接 操作的执行过程_第1页
sqlserver 表 等值连接 操作的执行过程_第2页
sqlserver 表 等值连接 操作的执行过程_第3页
sqlserver 表 等值连接 操作的执行过程_第4页
sqlserver 表 等值连接 操作的执行过程_第5页
资源描述:

《sqlserver 表 等值连接 操作的执行过程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、连接操作的执行过程v嵌套循环法(NESTED-LOOP)§首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找满足连接件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。§表2全部查找完后,再找表1中第二个元组,然后再从头开始扫描表2,逐一查找满足连接条件的元组,找到后就将表1中的第二个元组与该元组拼接起来,形成结果表中一个元组。§重复上述操作,直到表1中的全部元组都处理完毕排序合并法(SORT-MERGE)常用于=连接§首先按连接属性对表1和表2排序§对表1的第一个元组,从头开始扫描表2,顺序查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼

2、接起来,形成结果表中一个元组。当遇到表2中第一条大于表1连接字段值的元组时,对表2的查询不再继续排序合并法§找到表1的第二条元组,然后从刚才的中断点处继续顺序扫描表2,查找满足连接条件的元组,找到后就将表1中的第二个元组与该元组拼接起来,形成结果表中一个元组。直接遇到表2中大于表1连接字段值的元组时,对表2的查询不再继续§重复上述操作,直到表1或表2中的全部元组都处理完毕为止连接查询(续)一、等值与非等值连接查询二、自身连接三、外连接四、复合条件连接一、等值与非等值连接查询v等值连接:连接运算符为=[例33]查询每个学生及其选修课程的情况SELECTStudent.*,SC.*FROMS

3、tudent,SCWHEREStudent.Sno=SC.Sno;等值与非等值连接查询(续)等值与非等值连接查询(续)v自然连接:[例34]对[例33]用自然连接完成。SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudent,SCWHEREStudent.Sno=SC.Sno;连接查询(续)一、等值与非等值连接查询二、自身连接三、外连接四、复合条件连接二、自身连接v自身连接:一个表与其自己进行连接v需要给表起别名以示区别v由于所有属性名都是同名属性,因此必须使用别名前缀[例35]查询每一门课的间接先修课(即先修课的先修课)S

4、ELECTFIRST.Cno,SECOND.CpnoFROMCourseFIRST,CourseSECONDWHEREFIRST.Cpno=SECOND.Cno;自身连接(续)FIRST表(Course表)自身连接(续)SECOND表(Course表)自身连接(续)查询结果:连接查询(续)一、等值与非等值连接查询二、自身连接三、外连接四、复合条件连接三、外连接v外连接与普通连接的区别§普通连接操作只输出满足连接条件的元组§外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出[例36]改写[例33]SELECTStudent.Sno,Sname,Ssex,Sage,Sdep

5、t,Cno,GradeFROMStudentLEFTOUTJOINSCON(Student.Sno=SC.Sno);外连接(续)执行结果:四、复合条件连接v复合条件连接:WHERE子句中含多个连接条件[例37]查询选修2号课程且成绩在90分以上的所有学生SELECTStudent.Sno,SnameFROMStudent,SCWHEREStudent.Sno=SC.SnoAND/*连接谓词*/SC.Cno=‘2’ANDSC.Grade>90;/*其他限定条件*/嵌套查询(续)SELECTSname/*外层查询/父查询*/FROMStudentWHERESnoIN(SELECTSno/*内

6、层查询/子查询*/FROMSCWHERECno='2');嵌套查询(续)§子查询的限制Ø不能使用ORDERBY子句§层层嵌套方式反映了SQL语言的结构化§有些嵌套查询可以用连接运算替代vidname

7、idscore

8、1lee

9、190

10、2zhang

11、2100

12、4wang

13、370

14、v一、外连接1.概念:包括左向外联接、右向外联接或完整外部联接2.左连接:leftjoin或leftouterjoinvselect*fromtable1leftjointable2ontable1.id=table2.idv1lee1902zhang21004wangNULLNULLv右连接:rightjoin或

15、rightouterjoinselect*fromtable1rightjointable2ontable1.id=table2.id1lee1902zhang2100NULLNULL370v.内连接:join或innerjoinvselect*fromtable1jointable2ontable1.id=table2.idv1lee1902zhang21003.4.3嵌套查询一、带有IN谓词的子查询二、带有比较运算符的子查询三、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。