数据库第五章关系数据库标准语言SQL(2).ppt
- 文档编号:2671094
- 上传时间:2022-11-06
- 格式:PPT
- 页数:16
- 大小:311.50KB
数据库第五章关系数据库标准语言SQL(2).ppt
《数据库第五章关系数据库标准语言SQL(2).ppt》由会员分享,可在线阅读,更多相关《数据库第五章关系数据库标准语言SQL(2).ppt(16页珍藏版)》请在冰豆网上搜索。
问题问题学生成绩查询显示的都是学生的学号和课程的课号信息。
因为选课表中存储的只是编号。
实际上最好显示学生的姓名和课程名,而姓名存储在学生表和课程表中;如何同时从这三个表中取得数据?
5.3.35.3.3连接查询连接查询v连接查询:
同时涉及多个表的查询连接查询:
同时涉及多个表的查询v连接条件或连接谓词:
用来连接两个表的条件连接条件或连接谓词:
用来连接两个表的条件一般格式:
一般格式:
n.n.BETWEEN.AND.v连接字段:
连接谓词中的列名称连接字段:
连接谓词中的列名称n连连接接条条件件中中的的各各连连接接字字段段类类型型必必须须是是可可比比的的,但但名名字字不不必是相同的必是相同的v连接表的先决条件连接表的先决条件涉及到的表都是有关联关系的通过外键实现v连接方法连接方法在from子句中列出所有表在where子句中指定连接条件v注意注意对于同名字段引用时要有表名n个表连接应有n-1个连接条件3.4.23.4.2连接查询连接查询一、等值与非等值连接查询一、等值与非等值连接查询11、等值连接、等值连接v连接运算符为连接运算符为=的连接操作的连接操作.=.任任何何子子句句中中引引用用表表1和和表表2中中同同名名属属性性时时,都都必必须须加加表表名名前前缀缀。
引引用唯一属性名用唯一属性名时可以加也可以省略表名前缀。
时可以加也可以省略表名前缀。
例例3333查询每个学生及其选修课程的情况。
查询每个学生及其选修课程的情况。
SELECTStudent.*,xuanke.*FROMStudent,xuankeWHEREStudent.Sno=xuanke.Sno;一、等值与非等值连接查询一、等值与非等值连接查询22、自然连接、自然连接v等值连接的一种特殊情况,把目标列中重复的属性列去掉等值连接的一种特殊情况,把目标列中重复的属性列去掉例例3434对对例例3333查查询询每每个个学学生生及及其其选选修修课课程程的的情情况况用用自然连接完成自然连接完成SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudent,SCWHEREStudent.Sno=SC.Sno;二、自身连接二、自身连接v一个表与其自己进行连接,称为表的一个表与其自己进行连接,称为表的自身连接自身连接v需要给表起别名以示区别需要给表起别名以示区别v由于所有属性名都是同名属性,因此必须使用别名前缀由于所有属性名都是同名属性,因此必须使用别名前缀例例3535查询每一门课的间接先修课(即先修课的先修课)查询每一门课的间接先修课(即先修课的先修课)SELECTFST.Cno,SEC.CpnoFROMCourseFST,CourseSECWHEREFST.Cpno=SEC.Cno自身连接(续)自身连接(续)CnoCnameCpnoCcredit1数据库数据库542数学数学23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理27PASCAL语言语言64CnoCnameCpnoCcredit1数据库数据库542数学数学23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理27PASCAL语言语言64SECONDFIRSTcnocnocpnocpno117733555566查询结果查询结果三三.内连接内连接v在新的在新的SQLSQL标准中内(标准中内(INNERINNER)运算一般格式是:
)运算一般格式是:
SelectFromINNERJIONOnwhereSELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudentINNERJOINXUANKEON(XUANKE.Sno=Student.Sno)猜一猜:
这样写,返回的查询结果是一样的吗?
SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMXUANKEINNERJOINStudentON(Student.Sno=XUANKE.Sno)再猜一猜:
以下返回多少行?
SELECTS.SName,C.CNO,C.GRADEFromStudentASSINNERJOINXUANKEASCONC.SNOS.SNO内连接内连接-1-1StundentSNameSName梅超风陈玄风陆乘风曲灵风SSNONO1234查询结果查询结果SNameSName梅超风陈玄风陈玄风陆乘风CCNONOGRADEGRADE00100100200297896776陆乘风00381XUANKESSNONOCCNONOGRADEGRADE122300100100200297896776300381内连接内连接-2-2SELECTStudent.SName,Xuanke.Cno,Xuanke.GradeFROMStudents,XuankeWHEREStudents.Sno=Xuanke.Sno三、外连接(三、外连接(OuterJoinOuterJoin)v外连接与普通连接外连接与普通连接(内连接内连接)的区别的区别普通连接操作只输出满足连接条件的元组普通连接操作只输出满足连接条件的元组外连接操作以指定表为连接主体,将主体表中不满足连接条外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出件的元组一并输出例例3636查询每个学生及其选修课程的情况查询每个学生及其选修课程的情况(包括没有选修课程的学生包括没有选修课程的学生)SELECTSELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudentFROMStudentLEFTOUTERJOINXUANKELEFTOUTERJOINXUANKEONONStudent.SnoStudent.Sno=XUANKE.SnoXUANKE.Sno外连接(续外连接(续)v左外连接左外连接列列出出左左边边关关系系(如如本本例例Student)中中所所有有的元组的元组v右外连接右外连接列出右边关系中所有的元组列出右边关系中所有的元组xuankeSSNONOCCNONOGRADEGRADE122300100100200297896776300381外连接外连接-左连接左连接StundentSNameSName梅超风梅超风陈玄风陈玄风陆乘风陆乘风曲灵风曲灵风SSNONO1234查询结果查询结果SNameSName梅超风梅超风陈玄风陈玄风陈玄风陈玄风陆乘风陆乘风CCNONOGRADEGRADE00100100200297896776陆乘风陆乘风00381曲灵风曲灵风NULLNULLSELECTS.SName,C.CNO,C.GRADEFromStudentASSLEFTJOINxuankeASCONC.SNO=S.SNO猜一猜:
这样写,返回的查询结果是一样的吗?
SELECTS.SName,C.CNO,C.GRADEFromxuankeASCLEFTJOINStudentASSONC.SNO=S.SNO五、复合条件连接五、复合条件连接WHEREWHERE子句中含多个连接条件时,称为复合条件连接子句中含多个连接条件时,称为复合条件连接例例3737查询选修查询选修c002c002号课程且成绩在号课程且成绩在9090分以上的所有学生的分以上的所有学生的学号、姓名学号、姓名SELECTStudent.Sno,student.SnameFROMStudent,xuankeWHEREStudent.Sno=xuanke.SnoANDxuanke.Cno=c002ANDxuanke.Grade90;例例3838查询每个学生的学号、姓名、选修的课程名及成绩。
查询每个学生的学号、姓名、选修的课程名及成绩。
SELECTStudent.Sno,Sname,Cname,GradeFROMStudent,xuanke,CourseWHEREStudent.Sno=xuanke.Snoandxuanke.Cno=Course.Cno;问题提出问题提出学生信息表问题:
问题:
编写T-SQL语句,查看年龄比“张佳”大的学生,要求显示这些学生的信息?
分析:
分析:
第一步:
求出“张佳”的年龄;第二步:
利用WHERE语句,筛选年龄比“张佳”大的学员;Sunday,November6,2022下课了。
下课了。
休息一会儿。
休息一会儿。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 第五 关系 标准 语言 SQL