资源描述:
《数据库查询的实现题目》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4月11日实验要求一、针对上次实验建立的数据库实现一下查询1.查询选修人数超过50人的课程的名字,以及每门课的选课总人数,并将结果按照人数的升序排序selectCname,COUNT(*)fromSC,CwhereSC.Cno=C.CnogroupbyCname,SC.CnohavingCOUNT(*)>2orderbySC.Cno2.查询每门课的成绩都比这门课的其他同学高的学生的学号selectdistinctSnofromSCwhereGrade>any(selectGradefromSC,CwhereSC.Cno=C.Cno)3.查询每个同学的学号和姓名以及这个同学
2、成绩为优秀的课程的门数。selectSC.Sno,S.Sname,COUNT(*)as优秀的课程数from(selectSC.Cno,SC.GradefromSCgroupbySC.Grade,SC.CnohavingSC.Grade>90)astable1,SC,Swheretable1.Cno=SC.Cnoandtable1.Grade=SC.GradeandSC.Sno=S.SnogroupbySC.Sno,S.Sname;4.查询其他系的同学的年龄比‘软件工程系’的某个学生的年龄小的学生的学号,姓名和系别selectdistinctSno,Sname,Sdeptf
3、romS,Cwhere2011-Sborn'软件工程5.'查询每个系中年龄高于这个系的平均年龄的学生的学号和姓名、年龄selectSno,Sname,2011-SbornfromSS1where2011-Sborn>(selectAVG(2011-Sborn)fromSS2whereS1.Sdept=S2.Sdept)6.查询没有选课的学生的学号和姓名selectSno,SnamefromSwherenotexists(select*fromSCwhereSno=S
4、.Sno)7.查询每个同学成绩高于自己选修课程的平均分的学生的学号和选修课程的课号selectCOUNT(*)选课人数fromSC,S,CwhereSC.Cno=C.CnoandSC.Sno=S.SnoandS.Sdept='软件工程'andC.Cname='数据库'8.查询每个学生以及其选修课程的情况(要求使用做外连接)selectS.Sno,Sname,Ssex,Sdept,Cno,GradefromSleftouterjoinSCon(S.Sno=SC.Sno)9.查询选修‘数据库’的‘软件工程’系的学生的总人数selectCOUNT(*)fromStudent,C
5、oursewhereSdept='软件工程'andCno=(selectCnofromCoursewhereCname='数据库')10.自己举例实现带有ANY和ALL谓词的例子,各举一个例子查询其他系中比‘软件工程’某一学生年龄小的学生姓名和年龄selectSname,2011-SbornfromStudentwhere2011-Sborn'软件工程'查询其他系中比‘软件工程’所有学生年龄都小的学生姓名和年龄selectSname,2011-SbornfromSw
6、here2011-Sborn'软件工程'11.将年龄高于所有学生的平均年龄的学生的年龄减少2updateSsetSborn=Sborn-2where2011-Sborn>(selectAVG(2011-Sborn)fromS)12.将每个学生的平均分和总分插入到数据库中13.创建每个专业的学生人数的视图。createviewIS_StudentasselectSno,Sname,Ssex,Sdept,SbornfromSwhereSdeptin('软件工
7、程','网络工程','数学系','物理系','信息管理系')14.创建选修数据库的学生的学号,姓名,专业,成绩视图。createviewIS_Student1asselectSC.Sno,Sname,Sdept,GradefromS,SC,CwhereCname='数据库'15.将所有选修数据库的学生的选课信息删除。deletefromSCwhereCno=(selectCnofromCwhereCname='数据库')二、已知一个关系数据库的模式入校:Market(mno,mname,city)Item(ino,iname,