SQL查询练习题

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

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

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

资源描述

SQL查询练习题设教学数据库中有三个关系:学生关系S(S#,SNAME,AGE,SEX)选课关系SC(S#,C#,GRADE)课程关系C(C#,CNAME,TEACHER)下面用SQL语句实现下面每个查询:(1)查询学习课程号为C2的学生学号与成绩。SELECTS#,GRADEFROMSCWHEREC#=‘C2’(2)查询学习课程号为C2的学生学号与姓名。SELECTS.S#,SNAMEFROMS,SCWHERES.S#=SC.S#ANDC#=‘C2’或SELECTS#,SNAMEFROMSWHERES#IN(SELECTS#FROMSCWHEREC#=‘C2’)或SELECTS#,SNAMEFROMSWHEREEXISTS(SELECT*FROMSCWHERES#=S.S#ANDC#=‘C2’)(3)查询选修课程名为MATHS的学生学号与姓名。SELECTS.S#,SNAMEFROMS,SC,CWHERES.S#=SC.S#ANDSC.C#=C.C#ANDCNAME=‘MATHS’或SELECTS#,SNAMEFROMSWHERES#IN(SELECTS#FROMSCWHEREC#IN(SELECTC#FROMCWHERECNMAE=‘MATHS’))(4)查询选修课程号为C2或C4的学生学号。SELECTS#FROMSCWHEREC#=‘C2’ORC#=‘C4’(5)查询至少选修课程号为C2和C4的学生学号。SELECTS#FROMSCASX,SCASYWHEREX.S#=Y.S#ANDX.C#=‘C2’ANDY.C#=‘C4’(6)查询不学C2课的学生姓名与年龄。SELECTSNAME,AGEFROMSWHERES#NOTIN(SELECTS#FROMSCWHEREC#=‘C2’)或SELECTSNMAE,AGEFROMSWHERENOTEXISTS(SELECT*FROMSCWHERESC.S#=S.S#ANDC#=‘C2’)(7)查询学习全部课程的学生姓名。SELECTSNAMEFROMSWHERENOTEXISTS(SELECT*FROMCWHERENOTEXISTS(SELECT*FROMSCWHERESC.S#=S.S#ANDSC.C#=C.C#))(8)查询所学课程包含学生S3所学课程的学生学号。SELECTDISTINCTS#FROMSCXWHERENOTEXISTS(SELECT*FROMSCYWHEREY.S#=‘S3’ANDNOTEXISTS(SELECT*FROMSCZWHEREZ.S#=X.S#ANDZ.C#=Y.C#))(9)统计有学生选修的课程门数。SELECTCOUNT(DISTINCTC#)FROMSC(10)求选修C4课程的女学生的平均年龄。SELECTAVG(AGE)FROMSWHERESEX=‘女’ANDS#IN(SELECTS#FROMSCWHEREC#=‘C4’)(11)求刘老师所授课程的每门课程的平均成绩。SELECTC.C#,AVG(GRADE)FROMC,SCWHEREC.C#=SC.C#ANDTEACHER=‘LIU’GROUPBYC.C#或SELCTC#,AVG(GRADE)FROMSCWHEREC#IN(SELECTC#FROMCWHERETEACHER=‘LIU’)GROUPBYC#(12)统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。SELECTC#,COUNT(S#)FROMSCGROUPBYC#HAVINGCOUNT(*)10ORDERBYCOUNT(S#)DESC,C#(13)检索学号比WANG同学大,而年龄比他小的学生姓名。SELECTSNAMEFROMSWHERES#ALL(SELECTS#FROMSWHERESNAME=‘WANG’)ANDAGEALL(SELECTAGEFROMSWHERESNAME=‘WANG’)(14)在SC表中检索成绩为空值的学生学号和课程号。SELECTS#,C#FROMSCWHEREGRADEINNULL(15)检索姓名以L打头的所有学生的姓名和年龄。SELECTSNAME,AGEFROMSWHERESNAMELIKE’L%’(16)求年龄大于女同学平均年龄的男学生姓名和年龄。SELECTSNAME,AGEFROMSWHERESEX=‘男’ANDAGE(SELECTAVG(AGE)FROMSWHERESEX=‘女’)(17)求年龄大于所有女同学年龄的男学生姓名和年龄。SELECTSNAME,AGEFROMSWHERESEX=‘男’ANDAGEALL(SELECTAGEFROMSWHERESEX=‘女’)或SELECTSNAME,AGEFROMSWHERESEX=‘男’ANDAGE(SELECTMAX(AGE)FROMSWHERESEX=‘女’)更新操作(1)往关系C中插入一个课程元组(‘C8’,‘VC++’,‘BAO’)INSERTINTOCVALUES(‘C8’,’VC++’,’BAO’)(2)在SC中删除尚无成绩的选课元组。DELETEFROMSCWHEREGRADEINNULL(3)把选修LIU老师课程的女同学选课元组全部删去。DELETEFROMSCWHERES#IN(SELECTS#FROMSWHERESEX=‘F’)ANDC#IN(SELECTC#FROMCWHERETEACHER=‘LIU’)更新操作(4)把MATHS课不及格的成绩全改为60.UPDATESCSETGRADE=60WHEREGRADE60ANDC#IN(SELECTC#FROMCWHERECNAME=‘MATHS’)(5)把低于所有课程总平均成绩的女同学成绩提高5%。UPDATESCSETGRADE=GRADE*1.05WHERES#IN(SELECTS#FROMSWHERESEX=‘F’)ANDGRADE(SELECTAVG(GRADE)FROMSC)更新操作(6)在表SC中修改C4课程的成绩,若成绩小于70分时提高5%,若成绩大于70分时提高4%。UPDATESCSETGRADE=GRADE*1.05WHEREGRADE=70UPDATESCSETGRADE=GRADE*1.04WHEREGRADE70(7)在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%.UPDATESCSETGRADE=GRADE*1.05WHEREGRADE(SELECTAVG(GRADE)FROMFROMSC)

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

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

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

×
保存成功