mysql分组、排序和分页查询

书写顺序:
select-from-where-group by-having-order by-limit

分组查询

查询男女老师的数量(按性别分组):

select sex,count(tno)from t group by sex;

mysql分组、排序和分页查询_第1张图片
#查询年龄小于40岁的教师,并根据系别分组,且员工数量大于1:(group的条件是having)

select dept,count(tno) from t where age<40 group by dept;
select dept,count(tno) from t where age<40 group by dept having count(*)>1;
select dept,count(tno)as '专业人数' from t where age<40 group by dept having count(*)>1;

在这里插入图片描述
分组查询代码:
(查询字段一般是聚合函数和分组字段,其他的没有意义)

#分组查询
#where在分组之前过滤,不满足的不参与分组(内部不能使用聚合函数)
#having 分组之后对结果进行过滤(内部可以使用聚合函数)
#查询男女老师的数量(按性别分组)
select sex,count(tno)from t group by sex;
#查询年龄小于40岁的教师,并根据系别分组,且员工数量大于1
select dept,count(tno) from t where age<40 group by dept;
select dept,count(tno) from t where age<40 group by dept having count(*)>1;
select dept,count(tno)as '专业人数' from t where age<40 group by dept having count(*)>1;

排序

对学生年龄进行降序排序,如果年龄相同按学号大小升序排序:

#排序查询【很常见】
#asc升序(默认升序)desc降序
**#多字段排序的含义是:若第一个字段值相同再根据第二个字段排序**
select *from s order by age desc,SNo asc;#默认升序

mysql分组、排序和分页查询_第2张图片

分页查询

#分页查询(limit)【不同数据库分页查询不同】
#若查询参数从第一页开始则0可省略(既limit 4;)
select *from s limit 0,4;
#查询第二页的数据信息;
#第一个数据=(页码-1)*一页多少个
#第二个数据=每页返回的记录数
select *from s limit 4,4;

第一页:
mysql分组、排序和分页查询_第3张图片

第二页:
mysql分组、排序和分页查询_第4张图片

你可能感兴趣的:(mysql,mysql)