【数据库】分页|聚合|联合|分组

🔥博客主页: 我要成为C++领域大神

🎥系列专栏【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】

❤️感谢大家点赞👍收藏⭐评论✍️

本博客致力于分享知识,欢迎大家共同学习和交流。

分页查找

语法:select 列名 from 表名 limit a,b
表示从a开始向下查找b行,a是起始行,b是查询行数

select * from student limit 2,5;

聚合函数

最大值:max()

select C,max(score) 最高分 from SC where C='01';

最小值:min()

select S,min(score) 最低分 from sc where S='03';

平均值:avg()

select S,avg(score) 平均分 from sc where S='03';

求和:sum()

select S,sum(score) 总分 from sc where S='04';

统计个数:count()

表示满足条件的所有元素或行

select count(*) 学生总数 from student; 

select count(*) 王姓同学个数 from student where Sname like "王%";
select count(Sname) 王姓同学个数 from student where Sname like "王%";

count(*)和count(Sname)的区别:如果Sname这一列没有NULL的列,那么结果是一样的;如果有为NULL的数据,那么count(Sname)不会计算数据为NULL的那一行,count(Sname)就会比count(*)少。

分组

分组实现求某一个的具体值。题目要求中带有“每”时,考虑进行分组操作。

语法:group by+根据+having+条件

select s,sum(score) from SC group by s ;#统计每一个学生的总分

分组排序

语法:order by+根据+asc(升序)/desc(降序)

查询学生总成绩并按照降序排列

select S,sum(score) from SC group by S order by sum(score) DESC;

查询选修01课程的同学的分数(不写排序规则,则默认是升序)

select S,c,score from SC where c='01'   order by score ;

where和having的区别

where后面作为条件的列是表中原来就有的
having后面作为条件的列是表中原来没有的

联合

查询男生的个数

select Ssex,count(Sname) from student where ssex='男';

查询女生的个数

select Ssex,count(Sname) from student where ssex='女';

查询男生和女生的个数

select Ssex,count(Sname) from student where ssex='男'
union all
select Ssex,count(Sname) from student where ssex='女';

这种查询方式是查询了两遍整张表,先分组再查询只查询一遍,联合效率没有分组查询高。

select Ssex,count(Sname) from student group by ssex;
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值