欢迎来到天天文库
浏览记录
ID:57012995
大小:181.00 KB
页数:74页
时间:2020-07-26
《关系数据库标准语言SQLppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库系统概论AnIntroductiontoDatabaseSystem第三章关系数据库标准语言SQL(2)3.4数据查询3.4.1单表查询3.4.2连接查询3.4.3嵌套查询3.4.4集合查询3.4.5Select语句的一般形式3.4.2连接查询连接查询:同时涉及多个表的查询连接条件或连接谓词:用来连接两个表的条件一般格式:[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>[<表名1>.]<列名1>BETWEEN[<表名2>.]<列名2>AND[<表名2>.]<列名3>连接字段:连接谓词中的列名称连接条件中的各连接
2、字段类型必须是可比的,但名字不必是相同的连接查询(续)一、等值与非等值连接查询二、自身连接三、外连接四、复合条件连接一、等值与非等值连接查询等值连接:连接运算符为=[例33]查询每个学生及其选修课程的情况SELECTStudent.*,SC.*FROMStudent,SCWHEREStudent.Sno=SC.Sno;等值与非等值连接查询(续)Student.SnoSnameSsexSageSdeptSC.SnoCnoGrade200215121李勇男20CS200215121192200215121李勇男20CS2002151212
3、85200215121李勇男20CS200215121388200215122刘晨女19CS200215122290200215122刘晨女19CS200215122380查询结果:等值与非等值连接查询(续)自然连接:[例34]对[例33]用自然连接完成。SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudent,SCWHEREStudent.Sno=SC.Sno;连接查询(续)一、等值与非等值连接查询二、自身连接三、外连接四、复合条件连接二、自身连接自身连接:一个表与其自
4、己进行连接需要给表起别名以示区别由于所有属性名都是同名属性,因此必须使用别名前缀[例35]查询每一门课的间接先修课(即先修课的先修课)SELECTFIRST.Cno,SECOND.CpnoFROMCourseFIRST,CourseSECONDWHEREFIRST.Cpno=SECOND.Cno;自身连接(续)FIRST表(Course表)CnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64自身连接(续)CnoCnameCpnoCcredit1数据库54
5、2数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64SECOND表(Course表)自身连接(续)查询结果:CnoPcno173556连接查询(续)一、等值与非等值连接查询二、自身连接三、外连接(不要求)四、复合条件连接三、外连接(不要求)外连接与普通连接的区别普通连接操作只输出满足连接条件的元组外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出[例36]改写[例33]SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStuden
6、tLEFTOUTJOINSCON(Student.Sno=SC.Sno);外连接(续)执行结果:Student.SnoSnameSsexSageSdeptCnoGrade200215121李勇男20CS192200215121李勇男20CS285200215121李勇男20CS388200215122刘晨女19CS290200215122刘晨女19CS380200215123王敏女18MANULLNULL200215125张立男19ISNULLNULL外连接(续)左外连接列出左边关系(如本例Student)中所有的元组右外连接列出右边
7、关系中所有的元组连接查询(续)一、等值与非等值连接查询二、自身连接三、外连接四、复合条件连接四、复合条件连接复合条件连接:WHERE子句中含多个连接条件[例37]查询选修2号课程且成绩在90分以上的所有学生SELECTStudent.Sno,SnameFROMStudent,SCWHEREStudent.Sno=SC.SnoAND/*连接谓词*/SC.Cno=‘2’ANDSC.Grade>90;/*其他限定条件*/复合条件连接(续)[例38]查询每个学生的学号、姓名、选修的课程名及成绩SELECTStudent.Sno,Sname,C
8、name,GradeFROMStudent,SC,Course/*多表连接*/WHEREStudent.Sno=SC.SnoandSC.Cno=Course.Cno;3.4数据查询3.4.1单表查询3.4.2连接查询3.
此文档下载收益归作者所有