分组统计,嵌套查询和添加删除修改操作.docVIP

分组统计,嵌套查询和添加删除修改操作.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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.带有比较运算符的子查询 带有比较运算符的子查询是指主查询与子查询之间用比较运算符进行联接。当

文档评论(0)

jiayou10 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档