【0基础学习mysql】之DQL-聚合函数、分组查询及排序查询

2022-11-20 10:49:25 浏览数 (2)

CSDN话题挑战赛第2期 参赛话题:学习笔记

学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?

目录

一、聚合函数

1.常用聚合函数

2.实例

1.count

2.max 

 3.avg

4.sum

 二、分组查询

1.语法

2.实例

 三、排序查询

1.语法

2.实例

1.升序

 2.降序


一、聚合函数

将一列数据作为一个整体,进行纵向计算

1.常用聚合函数

函数

功能

count

统计数量

max

最大值

min

最小值

avg

平均值

sum

求和

语法:

SELECT 聚合函数(字段列表)FROM 表名;

2.实例

1.count

举例

统计user的人数

代码

代码语言:javascript复制
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT COUNT(*) FROM user;

执行结果

2.max 

举例

在user表中找出最大年龄

代码

代码语言:javascript复制
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT max(age) FROM user;

执行结果

 3.avg

举例

求表user年龄的平均值

代码

代码语言:javascript复制
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT avg(age) FROM user;

执行结果

4.sum

举例

对user表中的年龄求和

代码

代码语言:javascript复制
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT sum(age) FROM user;

执行结果

 二、分组查询

1.语法

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件]([]在这里只是用于区分,写代码时不加[])

WHERE是分组之前进行过滤,HAVING是分组之后对结果进行过滤。WHERE不能对聚合函数进行判断,而HAVING可以

2.实例

举例

分别统计表user不同年龄人的个数

代码

代码语言:javascript复制
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT age,count(*) FROM user GROUP BY age;

执行结果

 举例

查找年龄大于18的名字

代码

代码语言:javascript复制
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT * FROM user WHERE age>18 GROUP BY name;

执行结果

 三、排序查询

1.语法

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2......;)(默认为升序)

2.实例

1.升序

1.举例

根据年龄对表user进行升序排序

2.代码

代码语言:javascript复制
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT * FROM user ORDER BY age asc ;

3.执行结果

 2.降序

1.举例

根据年龄对表user进行降序排序

2.代码

代码语言:javascript复制
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT * FROM user ORDER BY age desc ;

3.执行结果

 实例

根据年龄对表user进行升序排序,年龄相同,根据id降序

代码

代码语言:javascript复制
INSERT INTO user(id,name,age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18);
SELECT * FROM user ORDER BY age asc,id desc ;

执行结果

0 人点赞