资源描述:
《数据库复杂查询》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验四复杂查询一、实验目的掌握两个表以上的连接查询的应用,包括嵌套查询。二、实验内容(1)查询比“林红”年纪大的男学生信息。查询语句:select*FROMStudent_20103285whereBirth<'1991-11-12'ANDSex='男'(2)检索所有学生的选课信息,包括学号、姓名、课号、课程名、成绩。SELECTStudent_20103285.Sno,Sname,Course_20103285.Cno,Cname,GradeFROMSC_20103285,Student_201
2、03285,Course_20103285WhereStudent_20103285.Sno=SC_20103285.SnoANDSC_20103285.Cno=Course_20103285.Cno(3)查询已选课学生的学号、姓名、课程名、成绩。SELECTDISTINCTStudent_20103285.Sno,Sname,Course_20103285.Cno,Cname,GradeFROMSC_20103285,Student_20103285,Course_20103285WhereSt
3、udent_20103285.Sno=SC_20103285.SnoANDSC_20103285.Cno=Course_20103285.Cno(4)查询选修了“C语言程序设计”的学生的学号和姓名。SELECTStudent_20103285.Sno,SnameFROMSC_20103285,Student_20103285,Course_20103285WhereCourse_20103285.Cname='C语言程序设计'ANDCourse_20103285.Cno=SC_20103285.C
4、noANDSC_20103285.Sno=Student_20103285.Sno(5)查询与“张虹”在同一个班级的学生学号、姓名、家庭住址。a.用子查询SELECTStudent_20103285.Sno,Sname,Home_addrFROMStudent_20103285WhereClassno=(SELECTClassnoFROMStudent_20103285WHERESname='张虹')b.用连接查询SELECTS1.Sno,S1.Sname,S1.Home_addrFROMStud
5、ent_20103285S1,Student_20103285S2WhereS1.Classno=S2.ClassnoANDS2.Sname='张虹'(6)查询其他班级中比“051”班所有学生年龄大的学生的学号、姓名。SELECTSno,SnameFROMStudent_20103285WHEREBirth'051'(7)(选作)查询选修了全部课程的学生姓名。SEL
6、ECTSnameFROMStudent_20103285WHERENOTEXISTS(SELECT*FROMCourse_20103285WHERENOTEXISTS(SELECT*FROMSC_20103285WHERESno=SC_20103285.SnoandCno=Course_20103285.Cno))(8)(选作)查询至少选修了学生“20050002”选修的全部课程的学生的学号,姓名。(9)检索学生的学号、姓名、学习课程名及课程成绩。SELECTStudent_20103285.Sn
7、o,Sname,Cname,GradeFROMStudent_20103285,SC_20103285,Course_20103285WHEREStudent_20103285.Sno=SC_20103285.SnoANDSC_20103285.Cno=Course_20103285.Cno(10)检索选修了“高数”课且成绩至少高于选修课程号为“002”课程的学生的学号、课程号、成绩,并按成绩从高到低次序排列。SELECTDISTINCTSno,Cno,GradefromSC_20103285WH
8、ERECnoin(SELECTCnofromCourse_20103285WHERECname='高数')andGrade>(selectMAX(Grade)FROMSC_20103285WHERECno='002')orderbyGradeDESC(11)检索选修3门以上课程的学生的学号、总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。SELECTSno,SUM(Grade)总成绩FROMSC_20103285WHEREGrade>60GROUPBYSnohaving