您好,欢迎访问三七文档
题1、查询Student表中的所有记录的Sname、Ssex和Class列。2、查询教师所有的单位即不重复的Depart列。3、查询Student表的所有记录。4、查询Score表中成绩在60到80之间的所有记录。5、查询Score表中成绩为85,86或88的记录。6、查询Student表中“95031”班或性别为“女”的同学记录。7、以Class降序查询Student表的所有记录。8、以Cno升序、Degree降序查询Score表的所有记录。9、查询“95031”班的学生人数。10、查询Score表中的最高分的学生学号和课程号。11、查询‘3-105’号课程的平均分。12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。13、查询最低分大于70,最高分小于90的Sno列。14、查询所有学生的Sname、Cno和Degree列。15、查询所有学生的Sno、Cname和Degree列。16、查询所有学生的Sname、Cname和Degree列。17、查询“95033”班所选课程的平均分。18、假设使用如下命令建立了一个grade表:createtablegrade(lownumeric(3,0),uppnumeric(3),rankchar(1));insertintogradevalues(90,100,'A');insertintogradevalues(80,89,'B');insertintogradevalues(70,79,'C');insertintogradevalues(60,69,'D');insertintogradevalues(0,59,'E');现查询所有同学的Sno、Cno和rank列。19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。23、查询“张旭“教师任课的学生成绩。24、查询选修某课程的同学人数多于5人的教师姓名。25、查询95033班和95031班全体学生的记录。26、查询存在有85分以上成绩的课程Cno.27、查询出“计算机系“教师所教课程的成绩表。28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.31、查询所有教师和同学的name、sex和birthday.32、查询所有“女”教师和“女”同学的name、sex和birthday.33、查询成绩比该课程平均成绩低的同学的成绩表。34、查询所有任课教师的Tname和Depart.35查询所有未讲课的教师的Tname和Depart.36、查询至少有2名男生的班号。37、查询Student表中不姓“王”的同学记录。38、查询Student表中每个学生的姓名和年龄。39、查询Student表中最大和最小的Sbirthday日期值。40、以班号和年龄从大到小的顺序查询Student表中的全部记录。41、查询“男”教师及其所上的课程。42、查询最高分同学的Sno、Cno和Degree列。43、查询和“李军”同性别的所有同学的Sname.44、查询和“李军”同性别并同班的同学Sname.45、查询所有选修“计算机导论”课程的“男”同学的成绩表下面是参考答案:SQL语句练习题参考答案1.selectsname,ssex,classfromstudent;2.selectdistinct(depart)fromteacher;orselectdistinctdepartfromteacher;3.select*fromstudent;4.select*fromscorewheredegreebetween60and80;orselect*fromscorewheredegree=60anddegree=80;5.select*fromscorewheredegreein(85,86,88);orselect*fromscorewheredegree=85ordegree=86ordegree=88;6.select*fromstudentwhereclass=95031orssex='女';7.select*fromstudentorderbyclassdesc;8.select*fromscoreorderbycnoasc,degreedesc;orselect*fromscoreorderbycno,degreedesc;9.selectcount(*)fromstudentwhereclass=95031;orselectcount(sno)fromstudentwhereclass=95031;10.selectSnoas'学号',cnoas'课程号',degreeas'最高分'fromscorewheredegree=(selectmax(degree)fromscore);11.selectavg(degree)fromscorewherecno='3-105';12.selectcno,avg(degree)fromscorewherecnolike'3%'groupbycnohavingcount(sno)5;orselectcno,avg(degree)fromscorewherecnolike'3%'groupbycnohavingcount(*)5;13.selectsnofromscoregroupbysnohavingmin(degree)70andmax(degree)90;14.selectstudent.sname,score.cno,score.degreefromstudent,scorewherestudent.sno=score.sno;orselectsname,cno,degreefromstudent,scorewherestudent.sno=score.sno;orselectx.sname,y.cno,y.degreefromstudentx,scoreywherex.sno=y.sno;15.Selectscore.sno,course.cname,score.degreefromscore,coursewherescore.cno=course.cno;orselectsno,cname,degreefromscore,coursewherescore.cno=course.cno;orselectx.sno,y.cname,x.degreefromscorex,courseywherex.cno=y.cno;16.selectstudent.sname,course.cname,score.degreefromstudent,course,scorewherestudent.sno=score.snoandcourse.cno=score.cno;orselectsname,cname,degreefromstudent,course,scorewherestudent.sno=score.snoandcourse.cno=score.cno;orselectx.sname,y.cname,z.degreefromstudentx,coursey,scorezwherex.sno=z.snoandy.cno=z.cno;17.selectcno,avg(degree)fromscore,studentwherestudent.sno=score.snoandclass=95033groupbycno;orselecty.cno,avg(y.degree)fromstudentx,scoreywherex.sno=y.snoandx.class=95033groupbyy.cno;18.selectsno,cno,rankfromscore,gradewheredegreebetweenlowandupp[orderbyrank];[]表示可有可无19.select*fromscorewherecno='3-105'anddegree(selectdegreefromscorewheresno='109'andcno='3-105');orselectx.*fromscorex,scoreywherex.cno='3-105'andx.degreey.degreeandy.sno='109'andy.cno='3-105';20.分析:1.成绩非本科最高select*fromscorewheredegreenotin(selectmax(degree)fromscoregroupbycno)选学一门以上的学生成绩:selectsnofromscoregroupbysnohavingcount(*)1;2.查询成绩非本科最高并且选1门以上的学生的成绩:select*fromscorewheredegreenotin(selectmax(degree)fromscoregroupbycno)groupbysnohavingcount(*)1;orselect*from(select*fromscorewheredegreenotin(selectmax(degree)fromscoregroupbycno))asaagroupbysnohavingcount(*)=2;通用答案:selectsnofrom(select*fromscorewheredegreenotin(selectmax(degree)fromscoregroupbycno))asaagroupbysnohavingcount(*)=2;21.select*fromscorewheredegree(selectdegreefromscorewheresno=109andcno='3-105');orselectx.*fromscorex,scoreywherex.degreey.degreeandy.sno=109andy.cno='3-105';22.selectsno,sname,sbirthdayfromstudentwhereyear(sbirthday)=(selectyear(sbirthday)fromstudentwheresno=108);23.select*fromscorewherecnoin(selectcnofromcoursewheretno=(selecttnofromteacherwheretname='张旭'));orselectcno,sno,degreefromscorewherecno=(selectx.cnofromcoursex,teacherywherex.tno=y.tnoandy.tname='张旭');24.selecttnamefromteacherwheretnoin(selectx.tnofromcoursex,scoreywherex.cno=y.cnoandy.cnoin(selectcnofromscoregroupbycnohavingcount(*)5));orselecttnamefromteacherwheretnoin(selecttnofromcoursewherecnoin(selectcnofromscoregroupbycnohavingcount(*)5));orselecttnamefromteacherwheretnoin(selectx
本文标题:sql习题及答案
链接地址:https://www.777doc.com/doc-6447124 .html