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 ;
执行结果