SQL语句练习

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

现在有一教学管理系统,具体的关系模式如下:Student(no,name,sex,birthday,class)Teacher(no,name,sex,birthday,prof,depart)Course(cno,cname,tno)Score(no,cno,degree)单表查询1,以class降序输出student的所有记录(student表全部属性)2,命令:select*fromStudentorderbyclassdesc3,列出教师所在的单位depart(不重复)。4,命令:selectdistinctdepartfromteacher5,列出student表中所有记录的name、sex和class列6,命令:selectname,sex,classfromstudent7,输出student中不姓王的同学的姓名。8,命令:selectnamefromStudentwherenamenotlike'王%'9,输出成绩为85或86或88或在60-80之间的记录(no,cno,degree)10,命令:select*fromScorewheredegree=85ordegree=86ordegree=88ordegreebetween60and8011,输出成绩为85或86或88或在60-80之间的记录(no,cno,degree)12,命令:select*fromScorewheredegree=85ordegree=86ordegree=88ordegreebetween60and8013,以cno升序、degree降序输出score的所有记录。(score表全部属性)14,命令:select*fromScoreorderbycno,degreedesc15,输出男生人数及这些男生分布在多少个班级中16,命令:selectCOUNT(*),COUNT(distinctclass)fromStudentwheresex='男'17,列出存在有85分以上成绩的课程编号。18,命令:selectdistinctcnofromScorewheredegree8519,列出存在有85分以上成绩的课程编号。20,命令:selectdistinctcnofromScorewheredegree8521,输出‘3-105’号课程的平均分22,命令:selectAVG(DEGREE)fromScorewherecno='3-105'23,输出student中最大和最小的birthday日期0值24,命令:selectMAX(birthday),MIN(birthday)fromstudent25,显示95001和95004班全体学生的全部个人信息(不包括选课)。(student表全部属性)26,命令:select*fromStudentwhereclass='95001'orclass='95004'27,输出至少有5个同学选修的并以3开头的课程的课程号,课程平均分,课程最高分,课程最低分。28,命令:29,selectcno,AVG(degree),MAX(degree),MIN(degree)fromScore30,wherecnolike'3%'groupbycnohavingCOUNT(no)=531,输出所选修课程中最低分大于70分且最高分小于90分的学生学号及学生姓名32,命令:selectstudent.no,student.namefromScoreinnerjoinStudentonstudent.no=score.nogroupbystudent.no,namehaving(MIN(degree)70andMAX(degree)90)33,显示所教课程选修人数多于5人的教师姓名34,命令:selectnamefromScoreinnerjoincourseonscore.cno=course.cnoinnerjoinTeacheronTeacher.no=course.tnogroupbyteacher.no,namehavingCOUNT(*)535,输出’95001’班级所选课程的课程号和平均分36,命令:selectcno,AVG(degree)fromStudentinnerjoinScoreonstudent.no=score.nowherestudent.class='95001'groupbycno37,输出至少有两名男同学的班级编号。38,命令:selectclassfromStudentinnerjoinScoreonstudent.no=score.nowheresex='男'groupbyclasshavingCOUNT(distinctstudent.no)139,列出与108号同学同年出生的所有学生的学号、姓名和生日40,命令:selectno,name,birthdayfromStudentwhereyear(birthday)=(selectYEAR(birthday)fromStudentwhereno=108)41,列出存在有85分以上成绩的课程名称42,命令:selectcnamefromcourseinnerjoinScoreoncourse.cno=score.cnogroupbycnamehavingMAX(degree)8543,列出“计算机系”教师所教课程的成绩表(课程编号,课程名,学生名,成绩)。44,命令:selectscore.cno,cname,student.name,DEGREEfromStudentinnerjoinScoreon45,student.no=score.noinnerjoincourseonscore.cno=course.cnoinnerjoinTeacheroncourse.tno=Teacher.nowhereteacher.depart='计算机系'46,列出所有可能的“计算机系”与“电子工程系”不同职称的教师配对信息,要求输出每个老师的姓名(name)和(职称)47,命令:selectex1.name,ex1.prof,ex2.name,ex2.proffromTeacherex1,Teacherex2whereex1.depart='计算机系'andex2.depart='电子工程系'andex1.prof!=ex2.prof48,列出所有处于不同班级中,但具有相同生日的学生,要求输出每个学生的学号和姓名。(提示:使用datediff函数,具体用法可以参考:)命令:49,selectex1.no,ex1.name,ex2.no,ex2.namefromStudentex1innerjoinStudentex2onex1.birthday=ex2.birthdaywhereex1.class!=ex2.class50,selectex1.no,ex1.name,ex2.no,ex2.namefromStudentex1,Studentex2whereex1.class!=ex2.classanddatediff(day,ex1.birthday,ex2.birthday)=051,显示‘张三’教师任课的学生姓名,课程名,成绩52,命令:selectstudent.name,cname,DEGREEfromStudentinnerjoinScoreonstudent.no=score.noinnerjoincourseonscore.cno=course.cnoinnerjoinTeacheroncourse.tno=teacher.nowhereteacher.name='张三'53,列出所讲课已被选修的教师的姓名和系别54,命令:selectdistinctteacher.name,departfromScoreinnerjoincourseonscore.cno=course.cnoinnerjoinTeacheroncourse.tno=Teacher.no55,输出所有学生的name、no和degree。(degree为空的不输出和为空的输出两种情况)。56,命令:selectstudent.name,student.no,DEGREEfromStudentinnerjoinScoreonstudent.no=score.noselectstudent.name,student.no,DEGREEfromStudentleftjoinScoreonstudent.no=score.no57,列出所有任课教师的name和depart。(从课程选修和任课两个角度考虑)58,命令:59,(课程选修)60,selectdistinctteacher.name,departfromscore61,leftjoincourseonscore.cno=course.cnoleftjointeacheroncourse.tno=teacher.no62,(任课)63,selectdistinctteacher.name,departfromteacherinnerjoincourseonTeacher.no=course.tno64,输出男教师所上课程名称。65,命令:66,selectcnamefromTeacherinnerjoincourseonTeacher.no=course.tnowhereteacher.sex='男'67,出与“李军”同性别的所有同学的name。68,命令:selectnamefromStudentwheresex=(selectsexfromStudentwherename='李军')69,输出选修“数据结构”课程的男同学的成绩。70,命令:selectDEGREEfromStudentinnerjoinScoreonstudent.no=score.nowheresex='男'71,列出选修编号为‘3-105’课程并且该门课程成绩比课程‘3-111’的最高分72,要高的cno,no和degree。73,命令:selectcno,student.no,DEGREEfromStudentinnerjoinScoreonstudent.no=score.nowherecno='3-105'anddegree(selectMAX(degree)fromScorewherecno='3-111')74,输出score中成绩最高的学号和课程号75,命令:selectno,cnofromScorewheredegree=(selectMAX(degree)fromScore)76,输出选修3-105课程,其成绩高于109号同学在此课程所得成绩的所有同学的学号,姓名77,命令:selectstudent.no,namefromStudentinnerjoinScoreonstudent.no=score.nowherecno='3-105'anddegree(selectdegreefromStudentinnerjoinScoreonstudent.no=score.nowherestudent.no=109andcno='3-105')78,列出成绩比该课程平均成绩低的同学的学号,成绩和该门课的平均成绩79,命令:80,selectno,DEGREE,temp.avgdegreefromScoreinnerjoin(selectcno,AVG(degree)avgdegreefromScoregroupbycno)astemponscore.cno=temp.cnowheredegreeavgdegree81,列出没有实际授课的教师的姓名和系别82,命令:83,selectdistinctname,departfromTeacherleftjoincourseonTeacher.no=course.

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功