mysql--排序、聚合、分组、分页

--排序
		--order by 字段  默认从小到大
		--asc 从小到大   desc 从大到小
				--查询年龄在18到34之间的男性,按照年龄从小到大排序
				select * from students where (age between 18 and 34) and gender=1 order by age;
				select * from students where (age between 18 and 34) and gender=1 order by age asc;
				
				-- 查询年龄在18到34之间的女性,身高从高到矮排序
				select * from students where (age between 18 and 34) and gender=2 order by height desc;
				
				--查询年龄在18到34之间的女性,身高从高到矮排序,当身高相同的情况下按照年龄从小到大
				select * from students where (age between 18 and 34) and gender=2 order by height desc,age;
				
				--按照年龄从大到小,身高从高到矮排序
				select * from students order by age desc, height desc;

--聚合函数

		--总数 count 
				--  查询男性多少人  女性多少人    总数多少人
				select count(*) from students where gender=1;
				select count(*) as 男生人数 from students where gender=1;  -- 起个名字
				select count(*) as 女生人数 from students where gender=2;
				select count(*) as 总人数  where gender=2;
				
		--最大值  max 
				--查询最大的年龄
				 select max(age) from students;
				
		--最小值 min 
				--查询最矮的女性身高
				select min(height) from students where gender=2;
				
		--求和 sum
				--计算年龄总和
				 select sum(age) from students;
				
		--平均值 avg
				--计算平均年龄
				select sum(age)/count(*) from students;
			    select avg(age) from students;
				
		--四舍五入 round(123.123, 1) 保留一位小数
				--计算平均年龄,保留两位小数
				select round(avg(age),2) from students;
				
--分组  要和聚合在一起使用才有意义
		--group by
				-- 查询同类性别的人数
				select gender,count(*) from students group by gender;
				
		--group concat(...)
				--查询同类性别的姓名
				 select gender,group_concat(name) from students group by gender;
				 --查询同类性别的姓名,并且显示每个人的年龄和id
				 select gender,group_concat(name,'_',age,'_',id) from students group by gender;

		-- having 条件  这是对分好的组进行条件判断
				--查询平均年龄超过30岁的性别,以及姓名 
				select gender , group_concat( name) from students  group by gender having avg(age)>30;
				--查询每种性别中的人数大于2的信息
				select gender, group_concat(name)  from students group by gender having count(*)>2;

--分页
		--limit  
				-- limit 数字                --限制查询出来的数据个数
				
						--查询前五个数据
						select * from students limit 5;
						
				-- limit 数字1,数字2     -- 数字1  表示起始的位置,数字2  表示个数
				
						--	 查询3-5的数据   这里的下标是从0开始的,所以应该是2,3
						select * from students limit 2,3;
						
						-- 每页两个数据,显示第3页
						select * from students limit 4,2;   --(页数-1)*2
						
						--每页显示2个,显示第三页,按照年龄从小到大排序
						select * from students order by age limit 4,2;   ---顺序,where   order by  limit  不能乱

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值