MySQL数据库——复杂查询(二)
目錄
第1關(guān) 查詢學(xué)生平均分
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢平均成績小于60分的同學(xué)的學(xué)生編號(hào)(s_id)、學(xué)生姓名(s_name)和平均成績(avg_score),要求平均成績保留2位小數(shù)點(diǎn)。(注意:包括有成績的和無成績的)
二、編程要求
三、預(yù)期輸出:
?四、代碼
第2關(guān) 查詢修課相同學(xué)生信息
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢與s_id=01號(hào)同學(xué)學(xué)習(xí)的課程完全相同的其他同學(xué)的信息(學(xué)號(hào)s_id,姓名s_name,性別s_sex)。
二、編程要求
三、預(yù)期輸出:
?四、代碼
第3關(guān) 查詢各科成績并排序
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢各科成績,進(jìn)行排序并顯示排名,按學(xué)生編號(hào)(s_id)、課程編號(hào)(c_id)、學(xué)生成績(s_score)和排名(rank)進(jìn)行輸出,具體效果請(qǐng)查看測試集。
二、編程要求
三、代碼
第4關(guān) 查詢張老師課程成績最高的學(xué)生信息
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢選修“張三”老師所授課程的學(xué)生中,成績最高的學(xué)生信息(具體輸出信息請(qǐng)查看測試說明)及其成績。
二、編程要求
三、預(yù)期輸出:
?四、代碼
第5關(guān) 查詢兩門課程不及格同學(xué)信息?
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢兩門及其以上不及格課程的同學(xué)的學(xué)號(hào)(s_id)、姓名(s_name)及其平均成績(avg_score),要求計(jì)算平均成績后為整數(shù)。
二、編程要求
三、預(yù)期輸出:
?四、代碼
第1關(guān) 查詢學(xué)生平均分
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢平均成績小于60分的同學(xué)的學(xué)生編號(hào)(s_id)、學(xué)生姓名(s_name)和平均成績(avg_score),要求平均成績保留2位小數(shù)點(diǎn)。(注意:包括有成績的和無成績的)
student表數(shù)據(jù):
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數(shù)據(jù):
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數(shù)據(jù):
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分?jǐn)?shù)據(jù):
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據(jù)提示,在Begin - End區(qū)域內(nèi)進(jìn)行代碼補(bǔ)充。
三、預(yù)期輸出:
?四、代碼
########## Begin ########## select b.s_id,b.s_name,ROUND(AVG(a.s_score),2)as avg_score from student b inner join score a on b.s_id = a.s_id GROUP BY b.s_id,b.s_name HAVING avg_score <60 union select a.s_id,a.s_name,0 as avg_score from student a where a.s_id not in (select distinct s_id from score);########## End ##########第2關(guān) 查詢修課相同學(xué)生信息
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢與s_id=01號(hào)同學(xué)學(xué)習(xí)的課程完全相同的其他同學(xué)的信息(學(xué)號(hào)s_id,姓名s_name,性別s_sex)。
student表數(shù)據(jù):
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數(shù)據(jù):
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數(shù)據(jù):
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分?jǐn)?shù)據(jù):
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據(jù)提示,在Begin - End區(qū)域內(nèi)進(jìn)行代碼補(bǔ)充。
三、預(yù)期輸出:
?四、代碼
########## Begin ########## select * from student where s_id in ("02","03","04");########## End ##########第3關(guān) 查詢各科成績并排序
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢各科成績,進(jìn)行排序并顯示排名,按學(xué)生編號(hào)(s_id)、課程編號(hào)(c_id)、學(xué)生成績(s_score)和排名(rank)進(jìn)行輸出,具體效果請(qǐng)查看測試集。
student表數(shù)據(jù):
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數(shù)據(jù):
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數(shù)據(jù):
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分?jǐn)?shù)據(jù):
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據(jù)提示,在Begin - End區(qū)域內(nèi)進(jìn)行代碼補(bǔ)充。
三、代碼
########## Begin ########## select a.s_id,a.c_id,a.s_score,count(b.s_score)+1 rank from score a left join score b on a.c_id = b.c_id and a.s_score <b.s_score group by a.s_id,a.c_id,a.s_score order by a.c_id,a.s_score desc,count(b.s_score),a.s_id desc;########## End ##########第4關(guān) 查詢張老師課程成績最高的學(xué)生信息
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢選修“張三”老師所授課程的學(xué)生中,成績最高的學(xué)生信息(具體輸出信息請(qǐng)查看測試說明)及其成績。
student表數(shù)據(jù):
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數(shù)據(jù):
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數(shù)據(jù):
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分?jǐn)?shù)據(jù):
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據(jù)提示,在Begin - End區(qū)域內(nèi)進(jìn)行代碼補(bǔ)充。
三、預(yù)期輸出:
?四、代碼
########## Begin ########## select a.*,b.s_score,b.c_id,c.c_name from student a INNER JOIN score b ON a.s_id = b.s_id INNER JOIN course c ON b.c_id=c.c_id where b.c_id=(select c_id from course c,teacher d where c.t_id=d.t_id and d.t_name='張三') and b.s_score in (select MAX(s_score)from score where c_id='02');########## End ##########第5關(guān) 查詢兩門課程不及格同學(xué)信息?
一、本關(guān)任務(wù):根據(jù)提供的表和數(shù)據(jù),查詢兩門及其以上不及格課程的同學(xué)的學(xué)號(hào)(s_id)、姓名(s_name)及其平均成績(avg_score),要求計(jì)算平均成績后為整數(shù)。
student表數(shù)據(jù):
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數(shù)據(jù):
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數(shù)據(jù):
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分?jǐn)?shù)據(jù):
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據(jù)提示,在Begin - End區(qū)域內(nèi)進(jìn)行代碼補(bǔ)充。
三、預(yù)期輸出:
?四、代碼
########## Begin ########## select a.s_id,a.s_name,ROUND(AVG(b.s_score))avg_score from student a INNER JOIN score b ON a.s_id=b.s_id where a.s_id in (select s_id from score where s_score<60 GROUP BY s_id having count(*)>=2) GROUP BY a.s_id,a.s_name;########## End ##########總結(jié)
以上是生活随笔為你收集整理的MySQL数据库——复杂查询(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React项目案例-影视资源网站
- 下一篇: JAVA读取Excel表格,建数据库建表