您好,欢迎访问三七文档
二.语句题1.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)写出查询选修了“数据库”课程的学生人数的SQL语句selectcount(*)fromSCjoinCourseonCourse.cno=SC.cnowhereCname='数据库'2.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)统计每门课程的选课人数,包括没有人选的课程,列出课程号、选课人数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”;如果此门课程的选课人数在40~100,则显示“一般”;如果此门课程的选课人数在1~40,则显示“人少”;如果此门课程没有人选,则显示“无人选”。selectc.cno,count(sc.cno)选课人数,casewhencount(sc.cno)100then'人多'whencount(sc.cno)between40and100then'一般'whencount(sc.cno)between1and40then'人少'else'无人选'end选课情况fromcoursecleftjoinsconc.cno=sc.cnogroupbyc.cno3.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)针对以上各表,请按如下模式写出创建满足如下要求的视图的SQL语句。统计选课人数最多的前三门课程(包括并列的情况)的课程名和开课学期。createviewv5(课程名,开课学期)ascreateviewv5(课程名,开课学期)asselectcname,semesterfromcoursewherecnoin(selecttop3withtiescnofromscgroupbycnoorderbycount(*)desc)4.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)查询计算机系哪些学生没有选课,列出学生姓名。(请用外连接实现)selectsnamefromstudentsleftjoinscons.sno=sc.snowheresdept='计算机系'andsc.snoisnull5.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)删除“VB”考试成绩最低的学生的VB修课记录。deletefromscwheresnoin(selecttop1withtiessnofromscjoincourseconc.cno=sc.cnowherecname='VB'orderbygradeasc)andcnoin(selectcnofromcoursewherecname='VB')6.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)查询计算机系年龄最大的三个学生的姓名和年龄(包括并列情况)selecttop3withtiessname,sagefromstudentwheresdept='计算机系'orderbysagedesc7.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)写出查询成绩小于60的学生姓名、课程名及成绩的SQL语句。selectSname,Cname,GradefromStudentjoinSConStudent.Sno=SC.SnojoinCourseonCourse.Cno=SC.CnowhereGrade608.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。selectsno,count(*)选课门数,sum(grade)总成绩fromscgroupbysnoorderbycount(*)asc9.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)查询哪些课程没有学生选,列出课程号和课程名。(请用外连接实现)selectc.cno,cnamefromcoursecleftjoinsconc.cno=sc.cnowheresc.cnoisnull10.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)查询VB考试成绩高于VB平均成绩的学生姓名。selectsnamefromstudentsjoinscons.sno=sc.snojoincourseconc.cno=sc.cnowherecname='VB'andgrade(selectavg(grade)fromscjoincourseconc.cno=sc.cnowherecname='VB')11.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)写出查询选课人数在3人以上课程的平均成绩的SQL语句。selectCno,avg(Grade)fromCoursegroupbycnohavingcount(*)=312.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)查询选修C002课程的学生的姓名和所在系。selectsname,sdeptfromstudentsjoinscons.sno=sc.snowherecno='C002'13.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)在Course表中插入一行新数据,课程号为C100,课程名为Java,开课学期未定,学分为3。insertintocoursevalues('C100','Java',3,null)14.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)在Student表中插入一行新数据,学号为S100,姓名:新生,性别:男,年龄:19,所在系未定。insertintoStudentvalues('S100','新生','男',19,null)15.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)将C001课程的考试成绩增加10分。updatescsetgrade=grade+10wherecno='C001'16.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)针对以上各表,用SQL语句完成以下操作。统计每个系VB课程的考试情况,列出系名和考试情况,其中考试情况为:如果VB平均成绩大于等于90,则考试情况为“好”;如果VB平均成绩在80~89分,则考试情况为“良好”;如果VB平均成绩在70~79分,则考试情况为“一般”;如果VB平均成绩低于70分,则考试情况为“较差”。selectsdept,考试情况=casewhenavg(grade)=90then'好'whenavg(grade)between80and89then'良好'whenavg(grade)between70and79then'一般'whenavg(grade)70then'较差'endfromstudentsjoinscons.sno=sc.snojoincourseconc.cno=sc.cnowherecname='vb'groupbysdept17.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)针对以上各表,用SQL语句完成以下操作。统计每个学生的选课门数(包括没有选课的学生),列出学号、选课门数和选课情况,其中选课情况显示规则如下:如果选课门数大于等于6,则选课情况为“多”;如果选课门数在3~5,则选课情况为“一般”;如果选课门在1~2,则选课情况为“偏少”。如果没有选课,则选课情况为“未选课”。selects.sno,count(sc.cno)选课门数,选课情况=casewhencount(sc.cno)=6then'多'whencount(sc.cno)between3and5then'一般'whencount(sc.cno)between1and2then'偏少'else'未选'endfromstudentsleftjoinscons.sno=sc.snogroupbys.sno18.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)统计每个学生的选课门数,并按选课门数的递增顺序显示结果。selectsno,count(*)选课门数fromSCgroupbysnoorderbycount(*)asc19.设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),课程表:Course(Cno,Cname,Credit,Semester),选课表:SC(Sno,Cno,Grade)针对以上各表,用SQL语句完成以下操作。修改全部课程的学分,修改规则如下:如果是第1~2学期开设的课程,则学分增加5分;如果是第3~4学期开设的课程,则学分增加3分;如果是第5~6学期开设的课程,则学分增加1分;其他学期开设的课程学分不变。updatecoursesetcredit=credit+casewhensemesterin(1,2)then5whensemesterin(3,4)then3whensemesterin(5,6)then1else0end20.设有学生表:Student(Sno,Sname,Ssex
本文标题:数据库题库语句题2
链接地址:https://www.777doc.com/doc-3355262 .html