正则排序、查询、聚合函数

MySQL排序

使用ORDER BY 关键词 根据需要排序检索出的数据

单列排序(并指定方向)(默认升序排列)

升序排列

SELECT math,name FROM grade order by ASC;

降序排列

SELECT math,name FROM GRADE order by DESC;

多列排序(并指定方向)

指定列名,列名之间用逗号分开即可

SELECT name,math,chinese FROM grade ORDER BY math DESC,name ASC;

限制查询

使用LIMIT 关键词 

指定返回的行数

SELECT * FROM GRADE LIMIT 5;

指定从第几行起,返回多少行

第一个数为开始 位置(不包括此数字),第二个数为要检索的行数

SELECT name FROM grade LIMIT 2,5;

最大值

SELECT math,chinese FROM grade ORDER BY math DESC LIMIT 1;

最小值

SELECT math,english FROM grade ORDER BY english ASC LIMIT 1;

聚合函数

AVG() 返回某列的平均值

COUNT() 返回某列的行数

MAX() 返回某列的最大值

MIN() 返回某列的最小值

SUM() 返回某列值之和

聚合函数有两种写法:

1.SELECT AVG(math) FROM grade ;

2.起别名

SELECT AVG(math) as avgmath from grade;

聚集不同值(单个数值只取一次)

SELECT AVG(DISTINCT age) from grade;

group by  分组 

group by + 聚合函数(统计分组的信息)

group_concat(字段名)可以作为一个输出字段来使用,

group by + with rollup(在最后新增一行,来记录当前列里所有记录的总和)

过滤分组

使用HAVIING 关键词

类似于WHERE 。

唯一的差别是WHERE过滤行,而HAVING过滤分组。

有另一种理解方法,WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。

SELECT COUNT(*),math,chinese FROM grade GROUP BY math,chinese HAVIING math>80 and chinese>90;

在MySQL中查询语句的顺序:

查询语句的顺序:

SELECT > 列,列 > FROM > 表名 > WHERE > 条件 > GROUP BY > 列,列 > HAVING > 条件 > ORDER BY > 列 (ASC|DESC) > LIMIT start,count

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容