MySQL练习题
Posted caoxiaowei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL练习题相关的知识,希望对你有一定的参考价值。
每次面试必考 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练习题的主要内容,如果未能解决你的问题,请参考以下文章
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段