(续)连接操作的执行过程(3)索引连接(INDEX-JOIN)1对表2按连接字段建立索引1对表1中的每个元组,依次根据其连接字段值查询表2的索引,从中找到满足条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组数据库系AnIntroduction toDatabaseSystem
An Introduction to Database System 连接操作的执行过程(续) (3)索引连接(INDEX-JOIN) ◼ 对表2按连接字段建立索引 ◼ 对表1中的每个元组,依次根据其连接字段值查询表2 的索引,从中找到满足条件的元组,找到后就将表1 中的第一个元组与该元组拼接起来,形成结果表中一 个元组
(续)等值与非等值连接查询自然连接[例3.50]对[例3.49]用自然连接完成。SELECTSStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudent,ScWHERE Student.Sno=SC.Sno;O猪车An Introduction to Database System
An Introduction to Database System 等值与非等值连接查询(续) ❖自然连接 [例 3.50] 对[例 3.49]用自然连接完成。 SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student,SC WHERE Student.Sno = SC.Sno;
可(续)等值与非等值连接查询*一条SQL语句可以同时完成选择和连接香询,这时WHERE子句是由连接谓词和选择谓词组成的复合条件「例3.511查询选修2号课程且成绩在90分以上的所有学生的学号和姓名。SELECTStudent.Sno,SnameFROMStudent,Sc论WHERE Student.Sno=SC.Sno ANDSC.Cno='2'AND SC.Grade>90;执行过程:·先从SC中挑选出Cno='2'并且Grade>90的元组形成一个中间关系再和Student中满足连接条件的元组进行连接得到最终的结果关系AnIntroduction toDatabaseSystem
An Introduction to Database System 等值与非等值连接查询(续) ❖一条SQL语句可以同时完成选择和连接查询,这时 WHERE子句是由连接谓词和选择谓词组成的复合条件。 [例 3.51 ]查询选修2号课程且成绩在90分以上的所有学生的学号和姓名。 SELECT Student.Sno, Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND SC.Cno=' 2 ' AND SC.Grade>90; ◼执行过程: ⚫先从SC中挑选出Cno='2'并且Grade>90的元组形成一个中间 关系 ⚫再和Student中满足连接条件的元组进行连接得到最终的结果 关系
(续)连接查询1.等值与非等值连接香询2.自身连接日人民3.外连接数据库系统概论4.多表连接AnIntroductiontoDatabaseSystem
An Introduction to Database System 连接查询(续) 1.等值与非等值连接查询 2.自身连接 3.外连接 4.多表连接
2.自身连接必自身连接:一个表与其自己进行连接心需要给表起别名以示区别心由于所有属性名都是同名属性,因此必须使用别名前缀【例3.52]查询每一门课的间接先修课(即先修课的先修课)SELECTFIRST.Cno,SECOND.CpnoFROM Course FIRST,Course SECONDWHEREFIRST.Cpno=SECOND.Cno;An Introductionto Database System
An Introduction to Database System 2. 自身连接 ❖自身连接:一个表与其自己进行连接 ❖需要给表起别名以示区别 ❖由于所有属性名都是同名属性,因此必须使用别 名前缀 [例 3.52]查询每一门课的间接先修课(即先修课的先修课) SELECT FIRST.Cno, SECOND.Cpno FROM Course FIRST, Course SECOND WHERE FIRST.Cpno = SECOND.Cno;