数据库:深入浅出mysql学习笔记【超级详细(四)】

时间:2019-02-19
本文章向大家介绍数据库:深入浅出mysql学习笔记【超级详细(四)】,主要包括数据库:深入浅出mysql学习笔记【超级详细(四)】使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

想要查看前面的笔记请翻阅我的微博,作者码字不易,喜欢的话点赞,加个关注吧,后期还有很多干货等着你!

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就会出错