文档章节

mySQL练习题

phala
 phala
发布于 2015/12/15 18:31
字数 423
阅读 293
收藏 7

最开始命名错了,试着RENAME但失败了,看官方manual似乎5.6 ver. MySQL已经去掉了这个功能。

好吧直接drop再新建……接着是练习:


1)查询班级信息以及每个班级里年龄最大的学生姓名和年龄 

SELECT  class.class_id,
	class.class_name,
	tb_student.`name`,
	tb_student.age
FROM    
        tb_class AS class
LEFT JOIN tb_student ON class.class_id = tb_student.class_id
GROUP BY
	tb_student.class_id;
HAVING
	MAX(tb_student.age)

2)查询班级信息以及每个班级里男生人数,女生人数,总人数

SELECT
class_id, class_name,
(SELECT COUNT(*) FROM tb_student WHERE sex=1 AND class.class_id=tb_student.class_id)AS female,
(SELECT COUNT(*) FROM tb_student WHERE sex=2 AND class.class_id=tb_student.class_id)AS male
FROM
tb_class AS class;

3)查询班级信息以及每个班级里成绩最高的学生姓名,总成绩

SELECT
    class.class_id,class.class_name,info.`name`,info.sumscore
FROM
    tb_class class
LEFT JOIN(
    SELECT
    stu.`name`,stu.class_id id,
    (SELECT SUM(score.score) FROM tb_score score WHERE stu.stu_id=score.stu_id ) sumscore
    FROM tb_student stu
    GROUP BY stu.class_id
    HAVING MAX(sumscore)
)info ON info.id = class.class_id;

4)查询学生信息以及每个学生每个课程的成绩

SELECT
stu.`name`,
(SELECT score.score FROM tb_score score WHERE score.course_id=1 AND score.stu_id=stu.stu_id) php,
(SELECT score.score FROM tb_score score WHERE score.course_id=2 AND score.stu_id=stu.stu_id) mysql
FROM
tb_student stu;

有种回到学校做practice的感觉……其实各种条件的设置感觉实现就分两种,一种是直接SELECT下在分子区域SELECT,但是一个SELECT只能包含one column,所以当需要retrieve更多column时需要用LEFT JOIN

到3)就总也做不出来,要查找成绩最高,之前还要SUM一次,有点不知该如何下手,但是逻辑上肯定是SUM先行,所以是SELECT SUM(sco.score)用WHERE限定一下stu.id加出学生的总成绩,然后GROUP BY class.id 把学生按班分组最后用HAVING MAX() ,然后就retrieve出来了!

© 著作权归作者所有

phala
粉丝 6
博文 104
码字总数 53470
作品 0
成都
程序员
私信 提问
Shell学习之路和我发布过的Shell脚本博文

Shell学习之路 目录 Shell学习之路【第一篇】:别名,管道,用户配置文件,变量,read Shell学习之路【第二篇】:条件测试,运算符,选择结构,for循环结构 Shell学习之路【第三篇】:While循环,C-...

yht_1990
2016/07/19
0
0
深度学习 21天实战Caffe

帮助 链接:http://pan.baidu.com/s/1hsnIPfe 密码:xjpg 内容简介 · · · · · · 《深度学习:21天实战Caffe》是一本深度学习入门读物。以目前已经大量用于线上系统的深度学习框架Caffe...

x1kz18nkbqg
2017/11/22
0
0
编程初学者遇到的困惑

我是一个编程的初学者,现在学到javascript数组部分,但是遇到数组的练习题完全没有思路,目前我只能上网搜索别人写好的代码的练习题,参考别人的写代码的思路,然后照着别人的思路写代码。 ...

jillerWong
2013/09/23
184
5
女朋友的Mysql练习题

一、设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)...

小明男神
2018/02/27
5
0
几道Python小程序练习的多种解法,做出来就表示Python入门了!

下面由小编开始设题解题: python斐波那契数列 关于Python编程练习题和答案,斐波那契数列应用的示例。引用百度关于斐波那契数列的介绍,大家先简单来的了解下,什么是斐波那契数列? 斐波那...

Python新世界
2018/07/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊中国的通信行业:从“七国八制”到“中华”脊梁

本期文章和大家一起来聊一聊我曾经从事过的通信行业吧。最近各方面信息的泛滥,包括和华为的同学聊天,自己确实也感慨颇多。想想我自己本科主修通信工程,研究生再修信息与通信工程,从本科开...

CodeSheep
48分钟前
3
0
MDK:ARM M451M:exceed the range of code meory, continue to erase or not?

问题: 代码空间超限 几天前就遇到:exceed the range of code meory, continue to erase or not? 如下所示: 解决过程 开始以为中MDK软件的128KB限制,如是就不能生成HEX文件,应该链接时有提...

SamXIAO
55分钟前
1
1
OSChina 周六乱弹 —— 因违反《中华人民共和国治安管理处罚法》第四十四条之规定

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :#今日歌曲推荐# 惊艳分享谷微的单曲《安守本份》(@网易云音乐) 《安守本份》- 谷微 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
266
7
Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
8
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部