MySQL-DQL 查询语句 下(分组查询,排序查询,分页查询)

1.分组查询

group by分组  按照性别分组,查询gender(性别),,并统计每个性别共有多少人

select gender,count(*) from sin group by gender;

 对数据进行年龄的分组,查询年龄,计算姓名的个数,计算同岁年龄的总和

select age,count(name) ,sum(age)from sin group by age;

having 对分组后的数据进行过滤 where 对分组前的数据进行过滤

把数据按照joindate进行分组,选取age年龄在45岁以下,显示joindate的数据,计算一共有几条符合条件的数据,并给计算结果取别名为idcount。在呈现的结果中,过滤掉idcount小于3的,只显示idcount大于三的数据(说明数据为数据库对命令的执行顺序)

select joindate,count(*)idcount 
from sin 
where age < 45
 group by joindate 
having idcount>=3;

执行结果:查询到有四个人(idcount=4>3)的年龄少于45岁,以及他们的joindate时间 

查询性别为男,名字为三个字或者名字最后一个字为“远”的歌手,通过姓名进行分组(数据表没有同名的歌手,但select后只能查询group by 的字段,为了方便识别执行后的数据)。显示符合条件歌手姓名,计算每个姓名有几条数据(两人重名则输出2,无人重名,均输出1),计算age之和(没有重名,只显示每个歌手的年龄)

select name,count(name)名字,sum(age)年龄 
from sin 
where gender='男' and name like '___' or name like '%远' 
group by name  ;

输出结果

2.排序查询

order by排序  desc降序(从大到小)  asc升序(从小到大) 如不输入desc/asc默认为升序

查询sin表单中的所有数据,并按照年龄降序排序

select * from sin order by age desc;

执行结果

 查询sin表单中的所有数据,并按照年龄升序排序,如果年龄相同,则按照入行时间降序排序

select * from sin order by age asc,joindate desc;

 执行结果:

3.分页查询

limit(数值1,数值2) 分页查询 第一条数据的位置为0 从数值1开始查询,往后查询数值2条数据

查询sin表中所有数据,按照id大小升序排序,从第一条数据往后查询5条数据(第一到五条)

select * from sin order by id limit 0,5 ;

执行结果:

查询sin表中所有数据,按照id大小升序排序,从第6条数据往后查询5条数据(第6到10条)

select * from sin order by id limit 5,5;

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值