您的位置:首页 > 数据库 > MySQL

06-mysql中的查询(排序、聚合函数、分组、分页)(第二章)

2017-06-24 22:25 881 查看

排序

语法

select * from 表名 order by 列1 asc|desc,列2 asc|desc,...


将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推

默认按照列值从小到大排列

asc从小到大排列,即升序

desc从大到小排序,即降序

例子:查询男生的信息,按年龄从大到小排序

select * from students where gender=1 order by age desc;




聚合函数

为了快速得到统计数据,经常会用到如下5个聚合函数

注意:聚合函数不能在 where 中使用

count(*)表示计算总行数,括号中写星与列名,结果是相同的

查询学生的总数:

select count(*) from students


max(列)表示求此列的最大值

查询男生最大的年龄

select max(age) from students where gender=1;




min(列)表示求此列的最小值

查询男生中年龄最小的

select min(age) from students where gender=1;




sum(列)表示求此列的和

查询所有男生年龄的综合

select sum(age) from students where gender=1;




avg(列)表示求此列的平均值

查询所有学生的平均年龄

select avg(age) from students;




分组

按照字段分组,表示此字段相同的数据会被放到一个组中

分组后,分组的依据列会显示在结果集中,其他列不会显示在结果集中

可以对分组后的数据进行统计,做聚合运算

语法:

select 列1,列2,聚合... from 表名 group by 列1,列2...


查询各个性别的人数

select gender as 性别,count(*) from students group by gender;




分组后的数据筛选:

语法:

select 列1,列2,聚合... from 表名 group by 列1,列2,列3... having 列1,...聚合...


查询男生的总人数

select gender as 性别,count(*) from students group by gender having gender=1;




where是对from后面指定的表进行数据筛选,属于对原始数据的筛选

having是对group by的结果进行筛选

分页

在实际开发当中,往往数据都是很多的,要是在一页中显示数据是一件非常麻烦的事情,我们可以获取数据的部分行。

语法:

select * from 表名 limit start,count;


start: 从start开始,获取count条数据

start的索引是从0开始的。

例子:获取前四个男生的信息

select * from students where gender=1 limit 0,3;




实际开发中我们会经常要对数据进行分页展示

已知:每页显示m条数据,当前显示第n页

分页公式:

limit (n-1)  * n,m
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐