MySQL数据库——单表查询(三)

目录

第1关 对查询结果进行排序

一、本关任务:以成绩的降序显示学生成绩表中所有信息。

对查询结果排序

指定排序方向

二、编程要求

三、预期输出:

四、代码 

第2关 分组查询

一、本关任务:对班级表中的班级名称进行分组查询。

分组查询的单独使用

二、编程要求

三、预期输出:

 四、代码

第3关 使用LIMIT限制查询结果的数量

一、本关任务:使用LIMIT关键字查询班级中第2名到第5名的学生信息,并根据学生成绩进行降序排序。

LIMIT的使用

二、编程要求

三、预期输出:

四、代码 

第1关 对查询结果进行排序

一、本关任务:以成绩的降序显示学生成绩表中所有信息。

对查询结果排序

我们知道在MySQL中从数据表中读取数据都是使用SELECT语句。
如果我们需要对读取的语句进行排序,我们就可以使用Order By子句来设定你想要按照的字段进行排序并返回结果。

语法:

  1. SELECT 字段名 FROM 表名 ORDER BY 字段名 [ASC[DESC]];

还可以根据自己的需求添加WHERELIKE子句来设置条件,再对结果过进行排序显示。

现有user表数据如下:

idnameage
1Tom32
2Nancy18
3Allen24
4Jason23

我们需要查询表中信息,要求按照年龄的升序进行排序:

指定排序方向

从上面的查询语句中我们并未看到有任何表示排序方向的关键字,在默认情况下,它是按升序排列的。

  • ASC 升序关键字
  • DESC 降序关键字

二、编程要求

查询学生成绩表中1班同学的所有信息并以成绩降序的方式显示结果。

学生成绩表:
tb_score表数据:

stu_idclass_idnamescore
12Jack81
21David74
31Mason92
42Ethan89
51Gina65

三、预期输出:

  1. stu_id class_id name score
  2. 3 1 Mason 92
  3. 2 1 David 74
  4. 5 1 Gina 65

四、代码 

USE School;

#请在此处添加实现代码
########## Begin ##########

########## 查询1班同学的所有信息以成绩降序的方式显示结果 ##########
SELECT*FROM tb_score WHERE class_id = 1 ORDER BY score DESC;


########## End ##########

第2关 分组查询

一、本关任务:对班级表中的班级名称进行分组查询。

分组查询的单独使用

分组查询的关键字是Group By,查询的是每个分组中 首次出现的一条记录

语法:

  1. SELECT 字段名 FROM 表名 GROUP BY 字段名;

例如:
现有user表数据:

idnamesex
1Tom
2Nancy
3AllenNull
4Jason

我们对表中数据的性别进行分组查询:

可以看出,返回了3条记录,分别是sex字段值为Null、女、男的记录,查询结果按照sex字段中不同的值进行了分类只显示每个分组中的一条记录,意义不大,一般情况下,GROUP BY都和聚合函数一起使用。

二、编程要求

对班级表中的班级名称进行分组查询。

班级表信息:
tb_class表数据:

stu_idclass_idname
1367Jack
2366David
3366Mason
4367Ethan
5366Gina

三、预期输出:

  1. stu_id class_id name
  2. 2 366 David
  3. 1 367 Jack

 四、代码

USE School;

#请在此处添加实现代码
########## Begin ##########

########## 对班级名称进行分组查询 ##########

SELECT*FROM tb_class GROUP BY class_id;
########## End ##########

第3关 使用LIMIT限制查询结果的数量

一、本关任务:使用LIMIT关键字查询班级中第2名到第5名的学生信息,并根据学生成绩进行降序排序。

LIMIT的使用

在我们查询大量数据结果时,会返回很多条数据,有需要的记录可能就其中的一条或者几条。比如,实现分页功能,若每页显示10条记录,每次查询就只需要10条记录。
MySQL中,提供了LIMIT关键字,用来限制查询结果的数量。

语法:

  1. SELECT 字段名 FROM 表名 LIMIT [OFFSET,] 记录数;

参数说明:

  • 第一个参数,OFFSET,可选参数,表示偏移量,如果不指定默认值为0,表示从查询结果的第一条记录开始,若偏移量为1,则从查询结果中的第二条记录开始,以此类推。

  • 第二个参数,记录数,表示返回查询结果的条数。

现有employee表数据如下:

idnameage
1Tom23
2Allen45
3Nancy32
4Jack27
5Rose29
6Mary18
  • 查询employee表中前4条数据:

  • 从第二条记录开始往后查看4条数据(不包含第二条):

二、编程要求

查询班级中第2名到第5名的学生信息,并根据学生成绩进行降序排序。

学生成绩表:
tb_score表数据:

idnamescore
1Jack89
2David73
3Mason62
4Ethan93
5Gina76
6Dorris98
7kain86
8Alice91

三、预期输出:

  1. id name score
  2. 4 Ethan 93
  3. 8 Alice 91
  4. 1 Jack 89
  5. 7 kain 86

四、代码 

USE School;

#请在此处添加实现代码
########## Begin ##########

########## 查询班级中第2名到第5名的学生信息 ##########
SELECT*FROM tb_score ORDER BY score DESC limit 1,4;

########## End ##########

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椅糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值