SQL練習(xí)題
《SQL練習(xí)題》由會(huì)員分享,可在線閱讀,更多相關(guān)《SQL練習(xí)題(15頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
測(cè)試表格 --1.學(xué)生表 Student(S#,Sname,Sage,Ssex) --S# 學(xué)生編號(hào),Sname 學(xué)生姓名,Sage 出生年月,Ssex 學(xué)生性別 --2.課程表 Course(C#,Cname,T#) --C# --課程編號(hào),Cname 課程名稱,T# 教師編號(hào) --3.教師表 Teacher(T#,Tname) --T# 教師編號(hào),Tname 教師姓名 --4.成績表 SC(S#,C#,score) --S# 學(xué)生編號(hào),C# 課程編號(hào),score 分?jǐn)?shù) 創(chuàng)建測(cè)試數(shù)據(jù) 學(xué)生表Student create 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孫風(fēng) , 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女) 科目表 Course create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10)) insert into Course values(01 , N語文 , 02) insert into Course values(02 , N數(shù)學(xué) , 01) insert into Course values(03 , N英語 , 03) 教師表 Teacher create 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王五) 成績表 SC create 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 "課程成績高的學(xué)生的信息及課程分?jǐn)?shù) 1.1 查詢同時(shí)存在" 01 "課程和" 02 "課程的情況 1.2 查詢存在" 01 "課程但可能不存在" 02 "課程的情況(不存在時(shí)顯示為 null ) 1.3 查詢不存在" 01 "課程但存在" 02 "課程的情況 2. 查詢平均成績大于等于 60 分的同學(xué)的學(xué)生編號(hào)和學(xué)生姓名和平均成績 3. 查詢?cè)?SC 表存在成績的學(xué)生信息 4. 查詢所有同學(xué)的學(xué)生編號(hào)、學(xué)生姓名、選課總數(shù)、所有課程的總成績(沒成績的顯示為 null ) 4.1 查有成績的學(xué)生信息 5. 查詢「李」姓老師的數(shù)量 6. 查詢學(xué)過「張三」老師授課的同學(xué)的信息 7. 查詢沒有學(xué)全所有課程的同學(xué)的信息 8. 查詢至少有一門課與學(xué)號(hào)為" 01 "的同學(xué)所學(xué)相同的同學(xué)的信息 9. 查詢和" 01 "號(hào)的同學(xué)學(xué)習(xí)的課程完全相同的其他同學(xué)的信息 10. 查詢沒學(xué)過"張三"老師講授的任一門課程的學(xué)生姓名 11. 查詢兩門及其以上不及格課程的同學(xué)的學(xué)號(hào),姓名及其平均成績 12. 檢索" 01 "課程分?jǐn)?shù)小于 60,按分?jǐn)?shù)降序排列的學(xué)生信息 13. 按平均成績從高到低顯示所有學(xué)生的所有課程的成績以及平均成績 14. 查詢各科成績最高分、最低分和平均分: 以如下形式顯示:課程 ID,課程 name,最高分,最低分,平均分,及格率,中等率,優(yōu)良率,優(yōu)秀率 及格為>=60,中等為:70-80,優(yōu)良為:80-90,優(yōu)秀為:>=90 要求輸出課程號(hào)和選修人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號(hào)升序排列 15. 按各科成績進(jìn)行排序,并顯示排名, Score 重復(fù)時(shí)保留名次空缺 15.1 按各科成績進(jìn)行排序,并顯示排名, Score 重復(fù)時(shí)合并名次 16. 查詢學(xué)生的總成績,并進(jìn)行排名,總分重復(fù)時(shí)保留名次空缺 16.1 查詢學(xué)生的總成績,并進(jìn)行排名,總分重復(fù)時(shí)不保留名次空缺 17. 統(tǒng)計(jì)各科成績各分?jǐn)?shù)段人數(shù):課程編號(hào),課程名稱,[100-85],[85-70],[70-60],[60-0] 及所占百分比 18. 查詢各科成績前三名的記錄 19. 查詢每門課程被選修的學(xué)生數(shù) 20. 查詢出只選修兩門課程的學(xué)生學(xué)號(hào)和姓名 21. 查詢男生、女生人數(shù) 22. 查詢名字中含有「風(fēng)」字的學(xué)生信息 23. 查詢同名同性學(xué)生名單,并統(tǒng)計(jì)同名人數(shù) 24. 查詢 1990 年出生的學(xué)生名單 25. 查詢每門課程的平均成績,結(jié)果按平均成績降序排列,平均成績相同時(shí),按課程編號(hào)升序排列 26. 查詢平均成績大于等于 85 的所有學(xué)生的學(xué)號(hào)、姓名和平均成績 27. 查詢課程名稱為「數(shù)學(xué)」,且分?jǐn)?shù)低于 60 的學(xué)生姓名和分?jǐn)?shù) 28. 查詢所有學(xué)生的課程及分?jǐn)?shù)情況(存在學(xué)生沒成績,沒選課的情況) 29. 查詢?nèi)魏我婚T課程成績?cè)?70 分以上的姓名、課程名稱和分?jǐn)?shù) 30. 查詢不及格的課程 31. 查詢課程編號(hào)為 01 且課程成績?cè)?80 分以上的學(xué)生的學(xué)號(hào)和姓名 32. 求每門課程的學(xué)生人數(shù) 33. 成績不重復(fù),查詢選修「張三」老師所授課程的學(xué)生中,成績最高的學(xué)生信息及其成績 34. 成績有重復(fù)的情況下,查詢選修「張三」老師所授課程的學(xué)生中,成績最高的學(xué)生信息及其成績 35. 查詢不同課程成績相同的學(xué)生的學(xué)生編號(hào)、課程編號(hào)、學(xué)生成績 36. 查詢每門功成績最好的前兩名 37. 統(tǒng)計(jì)每門課程的學(xué)生選修人數(shù)(超過 5 人的課程才統(tǒng)計(jì))。 38. 檢索至少選修兩門課程的學(xué)生學(xué)號(hào) 39. 查詢選修了全部課程的學(xué)生信息 40. 查詢各學(xué)生的年齡,只按年份來算 41. 按照出生日期來算,當(dāng)前月日 < 出生年月的月日則,年齡減一 42. 查詢本周過生日的學(xué)生 43. 查詢下周過生日的學(xué)生 44. 查詢本月過生日的學(xué)生 45. 查詢下月過生日的學(xué)生 答案參考,親測(cè),如有更優(yōu)解答,有勞各位獻(xiàn)上,供大家學(xué)習(xí)參考 [sql]view plaincopy 1. selectA.*,B.C#,B.scorefrom(select*fromSCwhereC#=01)A 2. leftjoin(select*fromSCwhereC#=02)B 3. onA.S#=B.S# 4. whereA.score>B.score 5. --1查詢“01”課程比"02"課程成績高的學(xué)生的信息及課程分?jǐn)?shù) 6. 7. select*from(select*fromSCwhereC#=01)A 8. leftjoin(select*fromSCwhereC#=02)BonA.S#=B.S# 9. whereB.S#isnotnull 10. --1.1查詢同時(shí)存在"01"課程和"02"課程的情況 11. 12. select*from(select*fromSCwhereC#=01)A 13. leftjoin(select*fromSCwhereC#=02)BonA.S#=B.S# 14. --1.2查詢存在"01"課程但可能不存在"02"課程的情況(不存在時(shí)顯示為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#)A 20. leftjoinStudentBonA.S#=B.S#whereA.dc>=60 21. --2.查詢平均成績大于等于60分的同學(xué)的學(xué)生編號(hào)和學(xué)生姓名和平均成績 22. 23. select*fromStudentwhereS#in(selectdistinctS#fromSC) 24. --3.查詢?cè)赟C表存在成績的學(xué)生信息 25. 26. selectB.S#,B.Sname,A.選課總數(shù),A.總成績from 27. (selectS#,COUNT(C#)選課總數(shù),sum(score)總成績fromSCgroupbyS#)A 28. rightjoinStudentBonA.S#=B.S# 29. --4.查詢所有同學(xué)的學(xué)生編號(hào)、學(xué)生姓名、選課總數(shù)、所有課程的總成績(沒成績的顯示為null) 30. 31. selectA.S#,B.Sname,A.選課總數(shù),A.總成績from 32. (selectS#,COUNT(C#)選課總數(shù),sum(score)總成績fromSCgroupbyS#)A 33. leftjoinStudentBonA.S#=B.S# 34. --4.1查有成績的學(xué)生信息 35. 36. selectCOUNT(*)李姓老師數(shù)量fromTeacherwhereTnamelike李% 37. --5.查詢「李」姓老師的數(shù)量 38. 39. select*fromStudent 40. whereS#in(selectdistinctS#fromSC 41. whereC#=(selectC#fromCourse 42. whereT#=(selectT#fromTeacherwhereTname=張三))) 43. --6.查詢學(xué)過「張三」老師授課的同學(xué)的信息 44. 45. select*fromStudentwhereS#in(selectS#fromSCgroupbyS#havingCOUNT(C#)<3) 46. --7.查詢沒有學(xué)全所有課程的同學(xué)的信息 47. 48. select*fromStudent 49. whereS#in(selectdistinctS#fromSCwhereC#in(selectC#fromSCwhereS#=01) 50. ) 51. --8.查詢至少有一門課與學(xué)號(hào)為"01"的同學(xué)所學(xué)相同的同學(xué)的信息 52. 53. select*fromStudent 54. whereS#in(selectS#fromSCwhereC#in(selectdistinctC#fromSCwhereS#=01)andS#<>01 55. groupbyS# 56. havingCOUNT(C#)>=3) 57. --9.查詢和"01"號(hào)的同學(xué)學(xué)習(xí)的課程完全相同的其他同學(xué)的信息 58. 59. selectSnamefromStudent 60. whereS#notin(selectS#fromSC 61. whereC#in(selectC#fromCoursewhereT#in(selectT#fromTeacherwhereTname=張三) 62. ) 63. )--10.查詢沒學(xué)過「張三」老師講授的任一門課程的學(xué)生姓名 64. 65. selectA.S#,A.Sname,B.平均成績fromStudentArightjoin 66. (selectS#,AVG(score)平均成績fromSCwherescore<60groupbyS#havingCOUNT(score)>=2)B 67. onA.S#=B.S#--11.查詢兩門及其以上不及格課程的同學(xué)的學(xué)號(hào),姓名及其平均成績 68. 69. selectS#,scorefromSCwhereC#=01andscore<60orderbyscoredesc 70. --12.檢索"01"課程分?jǐn)?shù)小于60,按分?jǐn)?shù)降序排列的學(xué)生信息 71. 72. selectS#,max(caseC#when01thenscoreelse0end)01, 73. max(caseC#when02thenscoreelse0end)02, 74. MAX(caseC#when03thenscoreelse0end)03,AVG(score)平均分fromSC 75. groupbyS#orderby平均分desc 76. --13.(靜態(tài)寫法)按平均成績從高到低顯示所有學(xué)生的所有課程的成績以及平均成績 77. 78. selectdistinctA.C#,Cname,最高分,最低分,平均分,及格率,中等率,優(yōu)良率,優(yōu)秀率fromSCA 79. leftjoinCourseonA.C#=Course.C# 80. leftjoin(selectC#,MAX(score)最高分,MIN(score)最低分,AVG(score)平均分fromSCgroupbyC#)BonA.C#=B.C# 81. leftjoin(selectC#,(convert(decimal(5,2),(sum(casewhenscore>=60then1else0end)*1.00)/COUNT(*))*100)及格率fromSCgroupbyC#)ConA.C#=C.C# 82. leftjoin(selectC#,(convert(decimal(5,2),(sum(casewhenscore>=70andscore<80then1else0end)*1.00)/COUNT(*))*100)中等率fromSCgroupbyC#)DonA.C#=D.C# 83. leftjoin(selectC#,(convert(decimal(5,2),(sum(casewhenscore>=80andscore<90then1else0end)*1.00)/COUNT(*))*100)優(yōu)良率fromSCgroupbyC#)EonA.C#=E.C# 84. leftjoin(selectC#,(convert(decimal(5,2),(sum(casewhenscore>=90then1else0end)*1.00)/COUNT(*))*100)優(yōu)秀率 85. fromSCgroupbyC#)FonA.C#=F.C# 86. --14.查詢各科成績最高分、最低分和平均分: 87. --以如下形式顯示:課程ID,課程name,最高分,最低分,平均分,及格率,中等率,優(yōu)良率,優(yōu)秀率 88. --及格為>=60,中等為:70-80,優(yōu)良為:80-90,優(yōu)秀為:>=90 89. 90. select*,RANK()over(orderbyscoredesc)排名fromSC 91. --15.按各科成績進(jìn)行排序,并顯示排名,Score重復(fù)時(shí)保留名次空缺 92. 93. select*,DENSE_RANK()over(orderbyscoredesc)排名fromSC 94. --15.1按各科成績進(jìn)行排序,并顯示排名,Score重復(fù)時(shí)合并名次 95. 96. select*,RANK()over(orderby總成績desc)排名from( 97. selectS#,SUM(score)總成績fromSCgroupbyS#)A 98. --16.查詢學(xué)生的總成績,并進(jìn)行排名,總分重復(fù)時(shí)保留名次空缺 99. 100. select*,dense_rank()over(orderby總成績desc)排名from( 101. selectS#,SUM(score)總成績fromSCgroupbyS#)A 102. --16.1查詢學(xué)生的總成績,并進(jìn)行排名,總分重復(fù)時(shí)不保留名次空缺 103. 104. selectdistinctA.C#,B.Cname,C.[100-85],C.所占百分比,D.[85-70],D.所占百分比,E.[70-60],E.所占百分比,F.[60-0],F.所占百分比 105. fromSCA 106. leftjoinCourseBONA.C#=B.C# 107. leftjoin(selectC#,sum(casewhenscore>85andscore<=100then1elsenullend)[100-85], 108. convert(decimal(5,2),(sum(casewhenscore>85andscore<100then1elsenullend))*1.00/COUNT(*))*100所占百分比fromSCgroupbyC#)ConA.C#=C.C# 109. leftjoin(selectC#,sum(casewhenscore>70andscore<=85then1elsenullend)[85-70], 110. convert(decimal(5,2),(sum(casewhenscore>70andscore<=85then1elsenullend))*1.00/COUNT(*))*100所占百分比fromSCgroupbyC#)DonA.C#=D.C# 111. leftjoin(selectC#,sum(casewhenscore>60andscore<=70then1elsenullend)[70-60], 112. convert(decimal(5,2),(sum(casewhenscore>60andscore<=70then1elsenullend))*1.00/COUNT(*))*100所占百分比fromSCgroupbyC#)EonA.C#=E.C# 113. leftjoin(selectC#,sum(casewhenscore>0andscore<=60then1elsenullend)[60-0], 114. convert(decimal(5,2),(sum(casewhenscore>0andscore<=60then1elsenullend))*1.00/COUNT(*))*100所占百分比fromSCgroupbyC#)FonA.C#=F.C# 115. --17.統(tǒng)計(jì)各科成績各分?jǐn)?shù)段人數(shù):課程編號(hào),課程名稱,[100-85],[85-70],[70-60],[60-0]及所占百分比 116. 117. select*from(select*,rank()over(partitionbyC#orderbyscoredesc)AfromSC)BwhereB.A<=3 118. --18.查詢各科成績前三名的記錄(方法1) 119. 120. selecta.S#,a.C#,a.scorefromSCa 121. leftjoinSCbona.C#=b.C#anda.score- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- SQL 練習(xí)題
鏈接地址:http://m.appdesigncorp.com/p-10196475.html