




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
测试表格-1.学生表Student(S#,Sname,Sage,Ssex)-S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别-2.课程表Course(C#,Cname,T#)-C# -课程编号,Cname 课程名称,T# 教师编号-3.教师表Teacher(T#,Tname)-T# 教师编号,Tname 教师姓名-4.成绩表SC(S#,C#,score)-S# 学生编号,C# 课程编号,score 分数创建测试数据学生表Studentcreate table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)insert into Student values(01 , N赵雷 , 1990-01-01 , N男)insert into Student values(02 , N钱电 , 1990-12-21 , N男)insert into Student values(03 , N孙风 , 1990-05-20 , N男)insert into Student values(04 , N李云 , 1990-08-06 , N男)insert into Student values(05 , N周梅 , 1991-12-01 , N女)insert into Student values(06 , N吴兰 , 1992-03-01 , N女)insert into Student values(07 , N郑竹 , 1989-07-01 , N女)insert into Student values(08 , N王菊 , 1990-01-20 , N女)科目表 Coursecreate table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10)insert into Course values(01 , N语文 , 02)insert into Course values(02 , N数学 , 01)insert into Course values(03 , N英语 , 03)教师表 Teachercreate table Teacher(T# varchar(10),Tname nvarchar(10)insert into Teacher values(01 , N张三)insert into Teacher values(02 , N李四)insert into Teacher values(03 , N王五)成绩表 SCcreate table SC(S# varchar(10),C# varchar(10),score decimal(18,1)insert into SC values(01 , 01 , 80)insert into SC values(01 , 02 , 90)insert into SC values(01 , 03 , 99)insert into SC values(02 , 01 , 70)insert into SC values(02 , 02 , 60)insert into SC values(02 , 03 , 80)insert into SC values(03 , 01 , 80)insert into SC values(03 , 02 , 80)insert into SC values(03 , 03 , 80)insert into SC values(04 , 01 , 50)insert into SC values(04 , 02 , 30)insert into SC values(04 , 03 , 20)insert into SC values(05 , 01 , 76)insert into SC values(05 , 02 , 87)insert into SC values(06 , 01 , 31)insert into SC values(06 , 03 , 34)insert into SC values(07 , 02 , 89)insert into SC values(07 , 03 , 98)1. 查询 01 课程比 02 课程成绩高的学生的信息及课程分数1.1 查询同时存在 01 课程和 02 课程的情况1.2 查询存在 01 课程但可能不存在 02 课程的情况(不存在时显示为 null )1.3 查询不存在 01 课程但存在 02 课程的情况2. 查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩3. 查询在 SC 表存在成绩的学生信息4. 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )4.1 查有成绩的学生信息5. 查询李姓老师的数量6. 查询学过张三老师授课的同学的信息7. 查询没有学全所有课程的同学的信息8. 查询至少有一门课与学号为 01 的同学所学相同的同学的信息9. 查询和 01 号的同学学习的课程完全相同的其他同学的信息10. 查询没学过张三老师讲授的任一门课程的学生姓名11. 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩12. 检索 01 课程分数小于 60,按分数降序排列的学生信息13. 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩14. 查询各科成绩最高分、最低分和平均分: 以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率 及格为=60,中等为:70-80,优良为:80-90,优秀为:=90 要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列15. 按各科成绩进行排序,并显示排名, Score 重复时保留名次空缺15.1 按各科成绩进行排序,并显示排名, Score 重复时合并名次16. 查询学生的总成绩,并进行排名,总分重复时保留名次空缺16.1 查询学生的总成绩,并进行排名,总分重复时不保留名次空缺17. 统计各科成绩各分数段人数:课程编号,课程名称,100-85,85-70,70-60,60-0 及所占百分比18. 查询各科成绩前三名的记录19. 查询每门课程被选修的学生数20. 查询出只选修两门课程的学生学号和姓名21. 查询男生、女生人数22. 查询名字中含有风字的学生信息23. 查询同名同性学生名单,并统计同名人数24. 查询 1990 年出生的学生名单25. 查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列26. 查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩27. 查询课程名称为数学,且分数低于 60 的学生姓名和分数28. 查询所有学生的课程及分数情况(存在学生没成绩,没选课的情况)29. 查询任何一门课程成绩在 70 分以上的姓名、课程名称和分数30. 查询不及格的课程31. 查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名32. 求每门课程的学生人数33. 成绩不重复,查询选修张三老师所授课程的学生中,成绩最高的学生信息及其成绩34. 成绩有重复的情况下,查询选修张三老师所授课程的学生中,成绩最高的学生信息及其成绩35. 查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩36. 查询每门功成绩最好的前两名37. 统计每门课程的学生选修人数(超过 5 人的课程才统计)。38. 检索至少选修两门课程的学生学号39. 查询选修了全部课程的学生信息40. 查询各学生的年龄,只按年份来算41. 按照出生日期来算,当前月日 B.score5. -1查询“01”课程比02课程成绩高的学生的信息及课程分数6. 7. select*from(select*fromSCwhereC#=01)A8. leftjoin(select*fromSCwhereC#=02)BonA.S#=B.S#9. whereB.S#isnotnull10. -1.1查询同时存在01课程和02课程的情况11. 12. select*from(select*fromSCwhereC#=01)A13. leftjoin(select*fromSCwhereC#=02)BonA.S#=B.S#14. -1.2查询存在01课程但可能不存在02课程的情况(不存在时显示为null)15. 16. select*fromSCwhereC#=02andS#notin(selectS#fromSCwhereC#=01)17. -1.3查询不存在01课程但存在02课程的情况18. 19. selectA.S#,B.Sname,A.dcfrom(selectS#,AVG(score)dcfromSCgroupbyS#)A20. leftjoinStudentBonA.S#=B.S#whereA.dc=6021. -2.查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩22. 23. select*fromStudentwhereS#in(selectdistinctS#fromSC)24. -3.查询在SC表存在成绩的学生信息25. 26. selectB.S#,B.Sname,A.选课总数,A.总成绩from27. (selectS#,COUNT(C#)选课总数,sum(score)总成绩fromSCgroupbyS#)A28. rightjoinStudentBonA.S#=B.S#29. -4.查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为null)30. 31. selectA.S#,B.Sname,A.选课总数,A.总成绩from32. (selectS#,COUNT(C#)选课总数,sum(score)总成绩fromSCgroupbyS#)A33. leftjoinStudentBonA.S#=B.S#34. -4.1查有成绩的学生信息35. 36. selectCOUNT(*)李姓老师数量fromTeacherwhereTnamelike李%37. -5.查询李姓老师的数量38. 39. select*fromStudent40. whereS#in(selectdistinctS#fromSC41. whereC#=(selectC#fromCourse42. whereT#=(selectT#fromTeacherwhereTname=张三)43. -6.查询学过张三老师授课的同学的信息44. 45. select*fromStudentwhereS#in(selectS#fromSCgroupbyS#havingCOUNT(C#)3)46. -7.查询没有学全所有课程的同学的信息47. 48. select*fromStudent49. whereS#in(selectdistinctS#fromSCwhereC#in(selectC#fromSCwhereS#=01)50. )51. -8.查询至少有一门课与学号为01的同学所学相同的同学的信息52. 53. select*fromStudent54. whereS#in(selectS#fromSCwhereC#in(selectdistinctC#fromSCwhereS#=01)andS#0155. groupbyS#56. havingCOUNT(C#)=3)57. -9.查询和01号的同学学习的课程完全相同的其他同学的信息58. 59. selectSnamefromStudent60. whereS#notin(selectS#fromSC61. whereC#in(selectC#fromCoursewhereT#in(selectT#fromTeacherwhereTname=张三)62. )63. )-10.查询没学过张三老师讲授的任一门课程的学生姓名64. 65. selectA.S#,A.Sname,B.平均成绩fromStudentArightjoin66. (selectS#,AVG(score)平均成绩fromSCwherescore=2)B67. onA.S#=B.S#-11.查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩68. 69. selectS#,scorefromSCwhereC#=01andscore=60then1else0end)*1.00)/COUNT(*)*100)及格率fromSCgroupbyC#)ConA.C#=C.C#82. leftjoin(selectC#,(convert(decimal(5,2),(sum(casewhenscore=70andscore=80andscore=90then1else0end)*1.00)/COUNT(*)*100)优秀率85. fromSCgroupbyC#)FonA.C#=F.C#86. -14.查询各科成绩最高分、最低分和平均分:87. -以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率88. -及格为=60,中等为:70-80,优良为:80-90,优秀为:=9089. 90. select*,RANK()over(orderbyscoredesc)排名fromSC91. -15.按各科成绩进行排序,并显示排名,Score重复时保留名次空缺92. 93. select*,DENSE_RANK()over(orderbyscoredesc)排名fromSC94. -15.1按各科成绩进行排序,并显示排名,Score重复时合并名次95. 96. select*,RANK()over(orderby总成绩desc)排名from(97. selectS#,SUM(score)总成绩fromSCgroupbyS#)A98. -16.查询学生的总成绩,并进行排名,总分重复时保留名次空缺99. 100. select*,dense_rank()over(orderby总成绩desc)排名from(101. selectS#,SUM(score)总成绩fromSCgroupbyS#)A102. -16.1查询学生的总成绩,并进行排名,总分重复时不保留名次空缺103. 104. selectdistinctA.C#,B.Cname,C.100-85,C.所占百分比,D.85-70,D.所占百分比,E.70-60,E.所占百分比,F.60-0,F.所占百分比105. fromSCA106. leftjoinCourseBONA.C#=B.C#107. leftjoin(selectC#,sum(casewhenscore85andscore85andscore70andscore70andscore60andscore60andscore0andscore0andscore=60then1elsenullend)*1.00/COUNT(*)*100所占百分比fromSCgroupbyC#)FonA.C#=F.C#115. -17.统计各科成绩各分数段人数:课程编号,课程名称,100-85,85-70,70-60,60-0及所占百分比116. 117. select*from(select*,rank()over(partitionbyC#orderbyscoredesc)AfromSC)BwhereB.A=3118. -18.查询各科成绩前三名的记录(方法1)119. 120. selecta.S#,a.C#,a.scorefromSCa121. leftjoinSCbona.C#=b.C#anda.scoreb.score122. groupbya.S#,a.C#,a.score123. havingCOUNT(b.S#)a.score)1148. -23.查询同名同性学生名单,并统计同名人数149. 150. select*fromStudentwhereYEAR(Sage)=1990151. -24.查询1990年出生的学生名单152. 153. selectC#,AVG(score)平均成绩fromSCgroupbyC#orderby平均成绩desc,C#154. -25.查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列155. 156. selectA.S#,A.Sname,B.平均成绩fromStudentA157. leftjoin(selectS#,AVG(score)平均成绩fromSCgroupbyS#)BonA.S#=B.S#158. whereB.平均成绩85159. -26.查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩160. 161. selectB.Sname,A.scorefrom(select*fromSCwherescore70)BleftjoinCourseConB.C#=C.C#)D170. leftjoinStudentAonD.S#=A.S#171. -29.查询任何一门课程成绩在70分以上的姓名、课程名称和分数172. 173. select*fromSCwherescore80andC#=01)A177. leftjoinStudentBonA.S#=B.S#178. -31.查询课程编号为01且课程成绩在80分以上的学生的学号和姓名179. 180. selectC#,COUNT(*)学生人数fromSCgroupbyC#181. -32.求每门课程的学生人数182. 183. selecttop1*fromSC184. whereC#=(selectC#fromCoursewhereT#=(selectT#fromTeacherwhereTname=张三)185. orderbyscoredesc186. -33.成绩不重复,查询选修张三老师所授课程的学生中,成绩最高的学生信息及其成绩187. 188. select*from(select*,DENSE_RANK()over(orderbyscoredesc)A189. fromSC190. whereC#=(selectC#fromCoursewhereT#=(selectT#fromTeacherwhereTname=张三)B191. whereB.A=1192. -34.成绩有重复的情况下,查询选修张三老师所授课程的学生中,成绩最高的学生信息及其成绩193. 194. selectC.S#,max(C.C#)C#,max(C.score)scorefromSCC195. leftjoin(selectS#,avg(score)AfromSCgroupbyS#)B196. onC.S#=B.S#197. whereC.score=B.A198. groupbyC.S#199. havingCOUNT(0)=(selectCOUNT(0)fromSCwhereS#=C.S#)200. -35.查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩201. 202. select*from203. (select*,ROW_NUMBER()over(partitionbyC#orderbyscoredesc)AfromSC)B204. whereB.A5210. orderby选修人数desc,C#211. -37.统计每门课程的学生选修人数(超过5人的课程才统计)。212. -要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列213. 214. selectS#fromSC215. groupbyS#216. havingCOUNT(C#)=2217. -38.检索至少选修两门课程的学生学号218. 219. selectS#fromSC220. groupbyS#221. havingcount(C#)=(selectdistinctCOUNT(0)afromCourse)222. -39.查询选修了全部课程的学生信息223. 224. selectS#,datediff(yy,Sage,GETDATE()年龄fromStudent225. -40.查询各学生的年龄,只按年份来算226. 227. select*,(casewhenconvert(int,1+substring(CONVERT(varchar(10),Sage,112),5,8)228. convert(int,1+substring(CONVERT(varchar(10),GETDATE(),112/*112是将格式转化为yymmdd*/),5,8)229. thendatediff(yy,Sage,GETDATE()230. elsedatediff(yy,Sage,GETDATE()-1231. end)age232.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人行道养护车项目建议书
- 中职旅游教学课件
- 全球化背景下的教育趋势比较分析
- 学生管理中的情感智能培养策略
- 游戏化学习在在线教育中的应用与挑战
- 中职教育语文课件《边城》
- 教学策略优化与学生心理健康的关联性研究
- 基础护士肿瘤科考试题库及答案
- 2025年铜陵市重点中学高二物理第二学期期末联考模拟试题含解析
- 商业领域的科技资源利用策略
- GB/T 10045-2018非合金钢及细晶粒钢药芯焊丝
- GB 7099-2015食品安全国家标准糕点、面包
- 2023年纳雍县财政局系统事业单位招聘笔试题库及答案解析
- 2023年广东省普通高中学业水平考试及参考答案
- 建筑工程模板施工工艺技术要点讲义丰富课件
- 永能选煤厂生产安全事故应急救援预案
- 浙江省建设领域简易劳动合同(A4版本)
- 位置度公差以及其计算
- 氯化铵危险化学品安全周知卡
- 浙江省本级公务车辆租赁服务验收单(格式)
- 糖代谢紊乱的实验诊断
评论
0/150
提交评论