140710-大学计算机第11讲-怎样管理和利用数据II.pptVIP

140710-大学计算机第11讲-怎样管理和利用数据II.ppt

  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文档。上传文档
查看更多
20140710-大学计算机第11讲-怎样管理和利用数据II

* * * * * * * * * * * * 求教师的工资总额 Select Sum(Salary) From Teacher; 求计算机系教师的工资总额 Select Sum(Salary) From Teacher T, Dept Where Dept.Dname = ‘计算机’ and Dept.D# = T.D#; 求数据库课程的平均成绩 Select AVG(Score) From Course C, SC Where C.Cname = ‘数据库’ and C.C# = SC.C#; 结果计算与聚集函数 4. SQL-SELECT之分组聚集操作 4.1 SELECT之结果计算与聚集函数? 分组计算与聚集 为解决同时求解若干个集合的聚集运算问题,引出了分组的概念。 SQL可以将检索到的元组按照某一条件进行分类,具有相同条件值的元组划到一个组或一个集合中,这一过程就是分组过程。 分组可以在基本Select语句基础上引入分组子句来完成: Select 列名 | expr | agfunc(列名) [[, 列名 | expr | agfunc(列名) ] … ] From 表名1 [, 表名2 … ] [ Where 检索条件 ] [ Group by 分组条件 ] ; 分组条件可以是 列名1, 列名2, … SELECT … FROM … WHERE … GROUP BY … HAVING … ORDER BY … 4. SQL-SELECT之分组聚集操作 4.2 SELECT之分组计算与聚集? 例如: 求每一个学生的平均成绩 Select S#, AVG(Score) From SC Group by S#; 再如:求每一门课程的平均成绩 Select C#, AVG(Score) From SC Group by C#; 4. SQL-SELECT之分组聚集操作 4.2 SELECT之分组计算与聚集? 分组计算与聚集 Group by C# Group by S# 求不及格课程超过两门的同学的学号,下述写法正确吗? Select S# From SC Where Score 60 and Count(*)2 Group by S#; 4. SQL-SELECT之分组聚集操作 4.3 SELECT之分组过滤 若要对分组(集合)进行条件过滤,可使用Having子句 Select 列名 | expr | agfunc(列名) [[, 列名 | expr | agfunc(列名) ] … ] From 表名1 [, 表名2 … ] [ Where 检索条件 ] [ Group by 分组条件 [ Having 分组过滤条件] ] ; 分组过滤----过滤掉分组,而不是元组 每一行都要检查满足 与否的条件要用 WHERE子句表达 每一分组检查满足与否的条件要用Having子句表达。 注意:不是每一行 都检查,所以使用Having子句一定要有Group by子句 HAVING子句与WHERE子句表达条件的区别 4. SQL-SELECT之分组聚集操作 4.3 SELECT之分组过滤 分组过滤----过滤掉分组,而不是元组 例如 求不及格课程超过两门的同学的学号 Select S# From SC Where Score 60 Group by S# Having Count(*)2; 再如 求有10人以上不及格的课程号 Select C# From SC Where Score 60 Group by C# Having Count(*)10; 分组过滤----过滤掉分组,而不是元组 4. SQL-SELECT之分组聚集操作 4.3 SELECT之分组过滤 例如:求有两门以上不及格课程的同学的学号及其平均成绩 Select S#, Avg(Score) From SC Where Score 60 Group by S# Having Count(*)2; 上述写法正确吗? 正确的如下书写,为什么呢? Select S#, AVG(Score) From SC Where S# in ( Select S# From SC Where Score 60 Group by S# Having Count(*)2 ) Group by S# ; 4.

文档评论(0)

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

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

1亿VIP精品文档

相关文档