- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分组统计,嵌套查询和添加删除修改操作
分组与计算查询
Group by短语用来对查询结果进行分组,把某一列的值相同的记录分在一组,通过计算每组产生一个结果。
基本格式:
Select…from…[where联接条件and查询条件] Group by 字段名[having 分组条件表达式]
说明:
group by 短语后面可以有很多个字段名,分组时把这些字段上值相同的记录分在一组。
having子句总是跟在group by 子句之后,用来限定分组必须满足的条件,不可以单独使用。
都接条件表达式,但并不矛盾,当一个查询命令中既有where短语同时又有having短语时,是先用where子句限定元组,然后进行分组,最后再用having子句限定分组。
例4.22 检索每个学生的平均成绩。
Select学号,avg(成绩)as平均分from score group by 学号
查询结果如图8-26所示。
说明:在这个查询中,首先按学号进行分组,将学号相同的学生记录放在一起,然后再计算每个学生所选修的所有课程的平均分。
例4.23 检索出每个学生的学号、姓名、总分、平均分、最高分和最低分,并将结果按总分降序排序。
Select score.学号,姓名,sum(成绩)as总分,avg(成绩)as平均分,;
Max(成绩)as最高分,min(成绩)as最低分; 图8-26 例8.22查询结果
From student,score;
Where student.学号=score.学号;
Group by score.学号;
Order by 总分 desc
查询结果如图8-27所示。
例4.24 检索出平均分在80分以上的学生的学号、姓名和平均成绩。并将结果按平均分升序排序。
Select score.学号,姓名,avg(成绩)as平均分;
From student,score;
Where student.学号=score.学号;
Group by score.学号having avg (成绩)=80;
Order by 平均分
查询结果如图8-28所示。 图8-27 例8.23查询结果
例4.25 检索至少有两名学生选修的课程的平均分,检索项包含课程编号和平均分。
SELECT 课程编号,AVG(成绩)AS 平均分 FROM SCORE;
GROUP BY 课程编号;
HAVING COUNT(*)=2
查询结果如图8-29所示
说明:
order by短语后面只能用字段名或别名,不可以用表达式。
子句having count(*)=2表示:每一组的元组个数大于等于2时满足条件。
例4.26 检索选修了两门或两门以上课程的学生的平均成绩,检索项包含学号、平均分。
Select 学号,avg(成绩)as平均分from score;
Group by 学号 having count(*)=2
查询结果如图8-30所示。
图8-28 例8.24查询结果 图8-29 例8.25查询结果 图8-30 例8.26查询结果
4.2.6 嵌套查询
接下来讨论另一类基于多个关系的查询,这类查询所要求的结果出自一个关系,但相关的条件却涉及多个关系。
下面介绍嵌套查询中子查询的常用谓词和量词。
1.带有in或not in运算符的子查询
带有in或not in运算符的子查询是指主查询与子查询之间用in或not in联接,判断某个属性列值是否在子查询的结果中。由于在嵌套查询中,子查询的结果往往是一个集合,所以运算符in和not in是嵌套查询中最经常使用的谓词。
基本格式:
Select…from…where…in(select …from…where…)
说明:
在嵌套查询中有两层select…from…【where…】Select * from student ;
Where 学号in(select学号 from score where 成绩90)
等价于:
Select distinct student.*;
From student,score;
Where student.学号=score.学号 and 成绩90
查询结果如图8-39所示。
图8-39 例8.35查询结果
例4.36 检索没有选课的学生信息。
Select * from student where学号 not in (select 学号from score)
查询结果如图8-40所示。
图8-40 例8.36查询结果
2.带有比较运算符的子查询
带有比较运算符的子查询是指主查询与子查询之间用比较运算符进行联接。当
您可能关注的文档
最近下载
- 2025高校辅导员素质能力大赛竞赛模拟试卷附答案(三套).pdf VIP
- 升压站土建施工方案.docx VIP
- 研发人员工时及分配表.docx VIP
- 2024变电站用磷酸铁锂电池及直流电源系统.docx VIP
- 2025年民航飞行员招飞心理测试题及答案.docx VIP
- 计算机科学概论原书第5版制作 中英文PPT教师手册习题等65739_PPTx_Chapter04.ppt VIP
- 社会工作概论王思斌第三版 .pdf VIP
- 2025全国青少年模拟飞行考核理论知识题库40题及参考答案1套.docx VIP
- 计算机科学概论原书第5版制作 中英文PPT教师手册习题等65739_PPTx_Chapter03.ppt VIP
- 脓毒症性凝血病诊疗中国专家共识解读.pptx
原创力文档


文档评论(0)