《数据库基础与应用》中SQL答案.docx
《《数据库基础与应用》中SQL答案.docx》由会员分享,可在线阅读,更多相关《《数据库基础与应用》中SQL答案.docx(19页珍藏版)》请在冰豆网上搜索。
《数据库基础与应用》中SQL答案
《数据库基础与应用》中SQL语句答案
①检索“王海”同学不学的课程的课程名
检索至少选修了“程军”老师所授全部课程的学生的学号和姓名
检索只选修了“C语言”的女学生的学号和姓名
②检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
检索所有选修“C语言”的同学的平均年龄
检索至少有两个同学选修的课程的课程名
③检索每门课程的选修人数和平均分数
检索选修了全部课程的学生的学号和姓名
检索至少选修了“程军”老师所授全部课程的学生的学号和姓名
④检索至少选修了两门课程的学生的学号和姓名
检索同时选修了“C语言”和“编译原理”的同学的学号和姓名
检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
⑤检索没有选修任何课程的学生的学号和姓名
检索所有课程的成绩都在分以上的同学的学号和姓名
检索全部“女”同学都选修的课程的课程名
⑥检索有“女”同学选修的课程的课程号和课程名
检索每门课程的选修人数和最高分
检索全部“男”同学都选修的课程的课程名
⑦检索所有课程的平均分在分以上的同学的学号和姓名
检索每个同学的选课门数及平均分、最高分、最低分
检索选修了全部课程的学生的学号和姓名
⑧检索选课门数最多的学生的学号和姓名
检索各科成绩均大于等于该科平均成绩的学生的学号和姓名
检索全部“男”同学都选修的课程的课程名
⑨检索选修人数最多的课程的课程号和课程名
检索只选修了“C语言”的学生的学号和姓名
检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
⑩检索没有选修“数据库原理”的学生的学号和姓名
检索只选修了“数据库原理”的学生的学号和姓名
检索选修了全部课程的学生的学号和姓名
⑾检索“女”同学都没有选修的课程的课程名
检索只选修了“C语言”的学生的学号和姓名
检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
⑿检索至少选修了三门课程的同学的学号
检索选修了全部课程的学生的学号和姓名
检索每门课程的选修人数和最高分
⒀检索至少有两门课程在分以上的学生的学号
检索没有选修课程的学生的学号和姓名
检索至少选修了“程军”老师所授全部课程的学生的学号和姓名
⒁检索全部课程都及格的学生的学号和姓名
检索选修人数最多的课程的课程号和课程名
检索只选修了“C语言”的学生的学号和姓名
⒂检索没有选修“C语言”的学生的学号和姓名
检索每个同学的选课门数及平均分、最高分、最低分
检索选修了全部课程的学生的学号和姓名
⒃统计每门课程的选修人数和平均分
检索所有课程的成绩都在分以上的同学的学号和姓名
检索全部“女”同学都选修的课程的课程名
⒄检索每门课程的成绩均高于该门课程平均成绩的学生的学号和姓名
检索至少选修了两门课程的学生的学号和姓名
检索同时选修了“C语言”和“编译原理”的同学的学号和姓名
⒅检索所有课程的平均分在分以上的同学的学号和姓名
检索每门课程的成绩均高于该门课程平均成绩的学生的学号和姓名
检索选修了全部课程的学生的学号和姓名
⒆检索每门课程的成绩均高于该门课程平均成绩的学生的学号和姓名
检索至少选修了“程军”老师所授全部课程的学生的学号和姓名
检索只选修了“C语言”的女学生的学号和姓名
⒇检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
检索每门课程的成绩均高于该门课程平均成绩的学生的学号和姓名
检索至少有两个同学选修的课程的课程名
(21)检索选课门数最多的学生的学号和姓名
检索每门课程的成绩均高于该门课程平均成绩的学生的学号和姓名
检索至少选修了三门课程的同学的学号
(22)检索至少有两门课程在分以上的学生的学号
检索每个同学的选课门数及平均分、最高分、最低分
检索选修了全部课程的学生的学号和姓名
(23)检索只选修了“数据库原理”的学生的学号和姓名
检索选修了全部课程的学生的学号和姓名
检索“男”同学和“女”同学都选修的课程的课程号和课程名
(24)检索至少有两门课程在分以上的学生的学号
检索每个同学的选课门数及平均分、最高分、最低分
检索选修了全部课程的学生的学号和姓名
(25)检索选课门数最多的学生的学号和姓名
检索每门课程的成绩均高于该门课程平均成绩的学生的学号和姓名
检索至少选修了三门课程的同学的学号
(26)检索只选修了“C语言”的学生的学号和姓名
检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
检索只有“男”学生选修的课程的课程号和课程名
(27)检索只选修了“数据库原理”的学生的学号和姓名
检索选修了全部课程的学生的学号和姓名
检索“女”同学都没有选修的课程的课程名
(28)检索至少选修了“程军”老师所授全部课程的学生的学号和姓名
检索只选修了“C语言”的女学生的学号和姓名
检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
select*froms
select*fromc
select*fromsc
1检索“王海”同学不学的课程的课程名
aselectcnamefromcwherec#notin(
selectc#fromscwheres#in(
selects#fromswheresname='王海'))
bselectcnamefromcwherenotexists(
select*fromscwheresc.c#=c.c#andsc.s#in(
selects#fromswheresname='王海'))
2检索至少选修了“程军”老师所授全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwhereteacher='程军'andnotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
3检索只选修了“C语言”的女学生的学号和姓名
selects#,snamefromswheresex='女'ands#in(
selects#fromscwherec#in(
selectc#fromcwherecname='C语言'))
ands#notin(
selects#fromscwherec#in(selectc#fromcwherecname!
='C语言'))
(二)
1检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherec#in(
selectc#fromscwheres#in(
selects#fromswheresname='王海'))andnotexists(
select*fromscwherec.c#=sc.c#andsc.s#=s.s#))
2检索所有选修“C语言”的同学的平均年龄
aselectavg(age)as平均年龄fromswherenotexists(
select*fromcwherecname='C语言'andnotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
bselectavg(age)as平均年龄fromswheres#in(
selects#fromscwherec#in(
selectc#fromcwherecname='C语言'))
3检索至少有两个同学选修的课程的课程名
selectc.c#,cnamefromsjoinscjoinc
onc.c#=sc.c#
ons.s#=sc.s#
groupbyc.c#,cname
havingcount(*)>=2
(三)
1检索每门课程的选修人数和平均分数
selectc.c#,count(*)as人数,avg(grade)as平均分数from
s,c,scwheres.s#=sc.s#andc.c#=sc.c#
groupbyc.c#
2检索选修了全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherenotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
3检索至少选修了“程军”老师所授全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherecname='程军'andnotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
(四)
1检索至少选修了两门课程的学生的学号和姓名
selects.s#,sname,count(*)as课程数froms,c,sc
wheres.s#=sc.s#andc.c#=sc.c#
groupbys.s#,sname
havingcount(*)>=2
2检索同时选修了“C语言”和“编译原理”的同学的学号和姓名
selects#,snamefromswheres#in(
selects#fromscwherec#in(
selectc#fromcwherecname='C语言'))
ands#in(selects#fromscwherec#in(
selectc#fromcwherecname='编译原理'))
3检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherec#in(
selectc#fromscwheres#in(
selects#fromswheresname='王海'))andnotexists(
select*fromscwherec.c#=sc.c#andsc.s#=s.s#))
(五)
1检索没有选修任何课程的学生的学号和姓名
selects#,snamefromswheres#notin(
selects#fromscwherec#in(
selectc#fromc))
insertintosvalues('S6','张军','男',22)
2检索所有课程的成绩都在分以上的同学的学号和姓名
selects#,snamefromswherenotexists(
select*fromscwheres.s#=sc.s#andgrade<=80)
ands#in(selects#fromsc
groupbys#)
3检索全部“女”同学都选修的课程的课程名
selectcnamefromcwherenotexists(
select*fromswheresex='女'andnotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
(六)
1检索有“女”同学选修的课程的课程号和课程名
aselectc#,cnamefromcwherec#in(
selectc#fromscwheres#in(
selects#fromswheresex='女'))
bselectdistinctc.c#,cnamefroms,c,sc
wheres.s#=sc.s#andc.c#=sc.c#
andsex='女'
cselectdistinctc.c#,cnamefromsjoinscjoinc
onc.c#=sc.c#ons.s#=sc.s#
andsex='女'
2检索每门课程的选修人数和最高分
selectc.c#,count(*)as选修人数,max(grade)as最高分
froms,c,scwheres.s#=sc.s#andc.c#=sc.c#
groupbyc.c#
3检索全部“男”同学都选修的课程的课程名
selectcnamefromcwherenotexists(
select*fromswheresex='男'andnotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
insertintoscvalues('S6','C1',90)
(七)
1检索所有课程的平均分在分以上的同学的学号和姓名
aselects.s#,snamefroms,sc
wheres.s#=sc.s#
groupbys.s#,sname
havingavg(grade)>85
bselects#,snamefromswheres#in(
selects#fromsc
groupbys#
havingavg(grade)>85)
2检索每个同学的选课门数及平均分、最高分、最低分
selects#,count(*)as选课门数,avg(grade)as平均分,
max(grade)as最高分,min(grade)as最低分
fromsc
groupbys#
3检索选修了全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherenotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
(八)
1检索选课门数最多的学生的学号和姓名
selecttop1withtiess.s#,snamefroms,sc
wheres.s#=sc.s#
groupbys.s#,sname
orderbycount(*)desc
2检索各科成绩均大于等于该科平均成绩的学生的学号和姓名
selects#,snamefromswherenotexists
(select*fromsc,cwheregrade<(selectavg(grade)fromscwhere
sc.s#=s.s#andc.c#=sc.c#groupbyc#))
3检索全部“男”同学都选修的课程的课程名
selectcnamefromcwherenotexists(
select*fromswheresex='男'andnotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
(九)
1检索选修人数最多的课程的课程号和课程名
selecttop1withtiesc.c#,cnamefromc,sc
wherec.c#=sc.c#
groupbyc.c#,cname
orderbycount(*)desc
2检索只选修了“C语言”的学生的学号和姓名
selects#,snamefromswheres#in(
selects#fromscwherec#in(
selectc#fromcwherecname='C语言'))
ands#notin(selects#fromscwherec#in(
selectc#fromcwherecname!
='C语言'))
3检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherec#in(
selectc#fromscwheres#in(
selects#fromswheresname='王海'))andnotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
(十)
1检索没有选修“数据库原理”的学生的学号和姓名
selects#,snamefromswheres#notin(
selects#fromscwherec#in(
selectc#fromcwherecname='数据库原理'))
2检索只选修了“数据库原理”的学生的学号和姓名
selects#,snamefromswheres#in(
selects#fromscwherec#in(
selectc#fromcwherecname='数据库原理'))
ands#notin(
selects#fromscwherec#in(
selectc#fromcwherecname!
='数据库原理'))
3检索选修了全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherenotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
(十一)
1检索“女”同学都没有选修的课程的课程名
selectcnamefromcwherec#notin(
selectc#fromscwheres#in(
selects#fromswheresex='女'))
2检索只选修了“C语言”的学生的学号和姓名
selects#,snamefromswheres#in(
selects#fromscwherec#in(
selectc#fromcwherecname='C语言'))
ands#notin(
selects#fromscwherec#in(
selectc#fromcwherecname!
='C语言'))
3检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherec#in(
selectc#fromscwheres#in(
selects#fromswheresname='王海'))
andnotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
(十二)
1检索至少选修了三门课程的同学的学号
selects.s#froms,scwheres.s#=sc.s#
groupbys.s#
havingcount(*)>=3
2检索选修了全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherenotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
3检索每门课程的选修人数和最高分
selectc.c#,count(*)as选修人数,max(grade)as最高分fromc,sc
wherec.c#=sc.c#
groupbyc.c#
(十三)
1检索至少有两门课程在分以上的学生的学号
selects.s#froms,sc
wheres.s#=sc.s#andgrade>60
groupbys.s#
havingcount(*)>=2
2检索只选修了“C语言”的学生的学号和姓名
selects#,snamefromswheres#in(
selects#fromscwherec#in(
selectc#fromcwherecname='C语言'))
ands#notin(
selects#fromscwherec#in(
selectc#fromcwherecname!
='C语言'))
3检索至少选修了“王海”同学所选修的全部课程的学生的学号和姓名
selects#,snamefromswherenotexists(
select*fromcwherec#in(
selectc#fromscwheres#in(
selects#fromswheresname='王海'))
andnotexists(
select*fromscwheres.s#=sc.s#andc.c#=sc.c#))
(十四)
1检索全部课程都及格的学生的学号和姓名
selects#,snamefromswheres#in(
selects#fromscwheres.s#=sc.s#
groupbys#
havingmin(grade)>=60)
2检索选修人数最多的课程的课程号和课程名
selecttop1withtiesc.c#,cnamefromc,sc
wherec.c#=sc.c#
groupbyc.c#,cname
orderbycount(*)desc
3检索只选修了“C语言”的学生的学号和姓名
selects#,snamefromswheres#in(
selects#fromscwherec#in(
selectc#fromcwherecname='