还剩1页未读,继续阅读
文本内容:
StudentS#SnameSageSsex学生表CourseC#CnameT#课程表SCS#C#score成绩表TeacherT#Tname教师表问题
1、查询“001”课程比“002”课程成绩高的所有学生的学号; selecta.S#fromselects#scorefromSCwhereC#=001aselects#score fromSCwhereC#=002b wherea.scoreb.scoreanda.s#=b.s#;
2、查询平均成绩大于60分的同学的学号和平均成绩; selectS#avgscore fromsc groupbyS#havingavgscore60;
3、查询所有同学的学号、姓名、选课数、总成绩; selectStudent.S#Student.SnamecountSC.C#sumscore fromStudentleftOuterjoinSConStudent.S#=SC.S# groupbyStudent.S#Sname
4、查询姓“李”的老师的个数; selectcountdistinctTname fromTeacher whereTnamelike李%;
5、查询没学过“叶平”老师课的同学的学号、姓名; selectStudent.S#Student.Sname fromStudent whereS#notinselectdistinctSC.S#fromSCCourseTeacherwhere SC.C#=Course.C#andTeacher.T#=Course.T#andTeacher.Tname=叶平;
6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; selectStudent.S#Student.SnamefromStudentSCwhereStudent.S#=SC.S#andSC.C#=001andexistsSelect*fromSCasSC_2whereSC_
2.S#=SC.S#andSC_
2.C#=002;
7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; selectS#Sname fromStudent whereS#inselectS#fromSCCourseTeacherwhereSC.C#=Course.C#andTeacher.T#=Course.T#andTeacher.Tname=叶平groupbyS#havingcountSC.C#=selectcountC#fromCourseTeacher whereTeacher.T#=Course.T#andTname=叶平;
8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; SelectS#SnamefromselectStudent.S#Student.SnamescoreselectscorefromSCSC_2whereSC_
2.S#=Student.S#andSC_
2.C#=002score2 fromStudentSCwhereStudent.S#=SC.S#andC#=001S_2wherescore2score;
9、查询所有课程成绩小于60分的同学的学号、姓名; selectS#Sname fromStudent whereS#notinselectStudent.S#fromStudentSCwhereS.S#=SC.S#andscore60;
10、查询没有学全所有课的同学的学号、姓名; selectStudent.S#Student.Sname fromStudentSC whereStudent.S#=SC.S#groupby Student.S#Student.SnamehavingcountC#selectcountC#fromCourse;
11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名; selectS#SnamefromStudentSCwhereStudent.S#=SC.S#andC#inselectC#fromSCwhereS#=1001;
12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名; selectdistinctSC.S#Sname fromStudentSC whereStudent.S#=SC.S#andC#inselectC#fromSCwhereS#=001;
13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩; updateSCsetscore=selectavgSC_
2.score fromSCSC_2 whereSC_
2.C#=SC.C#fromCourseTeacherwhereCourse.C#=SC.C#andCourse.T#=Teacher.T#andTeacher.Tname=叶平;
14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名; selectS#fromSCwhereC#inselectC#fromSCwhereS#=1002 groupbyS#havingcount*=selectcount*fromSCwhereS#=1002;
15、删除学习“叶平”老师课的SC表记录; DelectSC fromcourseTeacher whereCourse.C#=SC.C#andCourse.T#=Teacher.T#andTname=叶平;
16、向SC表中插入一些记录,这些记录要求符合以下条件没有上过编号“003”课程的同学学号、
2、 号课的平均成绩; InsertSCselectS#002Selectavgscore fromSCwhereC#=002fromStudentwhereS#notinSelectS#fromSCwhereC#=002;
17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示学生ID数据库企业管理英语有效课程数有效平均分 SELECTS#as学生ID SELECTscoreFROMSCWHERESC.S#=t.S#ANDC#=004AS数据库 SELECTscoreFROMSCWHERESC.S#=t.S#ANDC#=001AS企业管理 SELECTscoreFROMSCWHERESC.S#=t.S#ANDC#=006AS英语 COUNT*AS有效课程数AVGt.scoreAS平均成绩 FROMSCASt GROUPBYS# ORDERBYavgt.score
18、查询各科成绩最高和最低的分以如下形式显示课程ID,最高分,最低分 SELECTL.C#As课程IDL.scoreAS最高分R.scoreAS最低分 FROMSCLSCASR WHEREL.C#=R.C#and L.score=SELECTMAXIL.score FROMSCASILStudentASIM WHEREL.C#=IL.C#andIM.S#=IL.S# GROUPBYIL.C# AND R.Score=SELECTMINIR.score FROMSCASIR WHERER.C#=IR.C# GROUPBYIR.C# ;
19、按各科平均成绩从低到高和及格率的百分数从高到低顺序 SELECTt.C#AS课程号maxcourse.CnameAS课程名isnullAVGscore0AS平均成绩 100*SUMCASEWHEN isnullscore0=60THEN1ELSE0END/COUNT*AS及格百分数 FROMSCTCourse wheret.C#=course.C# GROUPBYt.C# ORDERBY100*SUMCASEWHEN isnullscore0=60THEN1ELSE0END/COUNT*DESC
20、假设有两张表TableAIDNameAge其中ID自增长为主键TableBIDTableAIDCountryProvince其中ID自增长为主键TableAID为表TableA外键现在另有一张表TableCTableAIDNameAgeCountryProvince有记录100条.题目:把TableC中的记录对应的值更新为TableA和TableB中的值.。