测牛学堂:软件测试工程师学习sql进阶

mysql进阶查询2

sql语句除了使用where是最常用的之外,为了满足查询需求,还有其他的一些需要我们掌握的内容,话不多说,上干货!

聚合函数

sql给我们提供了一些函数,帮助我们更好的查询,他们通常都是sql自己计算的一些值,返回给我们查询结果。
常见的五个聚合函数:avg平均值,count总数,max最大值,min最小值,sum求和
注意:聚合函数可以起别名,用as 作为关键字,通常可以省略关键字而直接起别名。
需求:查询所有人的平均年龄:
sql语句:

select avg(age) from stu 

as作为别名

select avg(age) as stuSvgAge from stu
select avg(age) stuSvgAge from stu

需求:查询年龄最大的人是多少岁
sql语句:

select max(age) from stu
sql的排序

关键字:order by
排序虽然可以根据字符串和时间进行排序,但是使用更多的字段时数值类型的字段。
asc是正序,也是默认值,如果不写,是正序。 desc是倒序

select * from stu order by age desc

如果有where语句和排序。排序在where后面。
需求:查询所有男生的信息,并按照id倒序

select * from stu where sex ='男' order by id desc
sql的分页

就是返回多少条给查询结果,关键字是limit,后面可以是一个数字,表示从0开始,也可以是两个数字,就是m开始取n条
从10开始,取5条

select * from stu limit 10,5

注意,如果where,order by 和limit同时使用的话,顺序也where,border by limit

sql的去重

关键字是distinct,写在要去重的字段前面
比如,去重相同的年龄

select distinct age from stu
sql的分组

关键字是group by
分组通常是和聚合函数一起使用的。按照分组的字段规则去分好以后返回作为查询的结果。
需要注意的是,如果使用分组查询,select后面只能加被分组的字段和聚合函数,其余字段是没有意义的。
需求:查询男生和女生各自的平均年龄。
分析:需要分组(男,女)则分组的字段为sex,需要聚合函数avg计算平均年龄

select sex avg(age) from stu group by sex

查询的条件用where关键字,分组的也可以再显示条件,关键字是having
需求:按性别分组,找出平均年龄大于34岁的那一组。
分析,首先是分两组,男,女,然后这两组里根据他们的平均年龄去判断,返回大于34的那一组给查询结果。

select sex avg(age) from stu group by sex having avg(age) > 34

顺序:where -group -order -limit

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值