想要查看前面的笔记请翻阅我的CSDN博客,作者码字不易,喜欢的话点赞,加个关注吧,后期还有很多干货等着你!
1.MySQL中排序的使用
进一步解释:如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。
语法:
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
- 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
- 你可以设定多个字段来排序。
- 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
- 你可以添加 WHERE...LIKE 子句来设置条件。
这里提示一个踩坑点:
如果字符集采用的是 gbk(汉字编码字符集),直接在查询语句后边添加 ORDER BY:
SELECT * FROM runoob_tbl ORDER BY runoob_title;
如果字符集采用的是 utf8(万国码),需要先对字段进行转码然后排序:
SELECT * FROM runoob_tbl ORDER BY CONVERT(runoob_title using gbk);
2.MySQL GROUP BY 语句(进行分组)
进一步解释:
GROUP BY 语句根据一个或多个列对结果集进行分组。
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
语法:
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
拓展:
1.COUNT(*)函数:返回在给定的选择中被选的行数。(返回的是数字,有几行返回几)
2.WITH ROLLUP函数:在group分组字段的基础上再进行统计数据。(对select后的字段进行数据统计)
3.SUM 函数:返回数值列的总数(总额)
(1)SUM (1, 2,3); --return 6
4.AVG 函数:返回数值列的平均值。NULL 值不包括在计算中。
(1)AVG (1, 2,3); --return 2
5.coalesce(arg1, arg2,arg3,arg4......);该函数的含义是返回最近的一个为非空值的值.例:
(1)coalesce(1, 2,3); --return 1
(2)coalesce(null,2,3); --return 2
6.HAVING函数:通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。
HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。
例子:
如果想查询平均分高于80分的学生记录可以这样写:
SELECT id, COUNT(course) as numcourse, AVG(score) as avgscore
FROM student
GROUP BY id
HAVING AVG(score)>=80;
在这里,如果用WHERE代替HAVING就会出错