码迷,mamicode.com
首页 > 数据库 > 详细

MySQL练习题

时间:2020-06-21 20:16:46      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:帮助   http   esc   重复   也会   要求   课程   lazy   -o   

每次面试必考 SQL,小编这几年一直吃 SQ 的亏,考题无非就是万年不变学生表, 看起来虽然简单,真正写出来,还是有一定难度。于是决定重新整理下关于 SQL 的面试题,也可以帮助更多的人过 SQL 这一关。
作为一个工作 3 年以上测试人员,不会 sql 基本上能拿到 offer 的希望渺茫,虽 然平常也会用到数据库,都是用的简单的查询语句。困难一点的就直接找开发了, 面试想留个好印象,还是得熟练掌握,能在纸上快速写出来。

万年不变学生表

有 2 张表,学生表(student)基本信息如下
技术图片
科目和分数表(grade)
技术图片

排序 order by

1.查询所有学生的数学成绩,显示学生姓名 name, 分数, 由高到低
select a.name b.score from student a,grade b where a.id=b.id and kemu=‘数学‘ order by score desc

统计总成绩 sum

2.统计每个学生的总成绩,显示字段:姓名,总成绩
select a.name,sum(b.score) as sum_score from student a,grade b where a.id=b.id order by name desc

统计总成绩

3.统计每个学生的总成绩(由于学生可能有重复名字),显示字段:学生 id,姓 名,总成绩
slect a.id ,a.name,c.sum_score from student a (select b.id sum(score) as sum_score from grrde b) where aid=c.id order by sum_score desc

统计单科最好成绩

4.列出各门课程成绩最好的学生, 要求显示字段: 学号,姓名,科目,成绩
第一步先 group by 找出单科最好成绩,作为第一张表
select b.kemu max(b.score) from grade b group by kemu
技术图片
再结合学生表和分数表,得到单科最好成绩
-- 单科最好的成绩
select c.id,a.name,c.kemu.c.score
from grade c,student a
(
select b.kemu max(b.score) as max_score
from grade b
group by kemu
) t
where c.kemu=t.lemu
and c.score=t.max_score
and a.id=c.id

MySQL练习题

标签:帮助   http   esc   重复   也会   要求   课程   lazy   -o   

原文地址:https://www.cnblogs.com/caoxiaowei/p/13173408.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!