- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 使用集函数(续) 求最大值 MAX([DISTINCT|ALL] 列名) 求最小值 MIN([DISTINCT|ALL] 列名) DISTINCT短语:在计算时要取消指定列中的重复值 ALL短语:不取消重复值 ALL为缺省值 * 使用集函数 (续) [例4.32] 查询学生总人数。 SELECT COUNT(*) FROM Student; ? [例4.33] 查询选修了课程的学生人数。 SELECT COUNT(DISTINCT Sno) FROM SC; 注:用DISTINCT以避免重复计算学生人数 * 使用集函数 (续) [例4.34] 计算1号课程的学生平均成绩。 SELECT AVG(Grade) FROM SC WHERE Cno= 1 ; ? [例4.35] 查询选修1号课程的学生最高分数。 SELECT MAX(Grade) FROM SC WHER Cno= 1 ; * 五、对查询结果分组 使用GROUP BY子句分组 细化集函数的作用对象 未对查询结果分组,集函数将作用于整个查询结果 对查询结果分组后,集函数将分别作用于每个组 * 使用GROUP BY子句分组 [例4.37] 求各个课程号及相应的选课人数。 SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;? * 对查询结果分组 (续) GROUP BY子句的作用对象是查询的中间结果表 分组方法:按指定的一列或多列值分组,值相等的为一组 使用GROUP BY子句后,SELECT子句的列名列表中只能出现分组属性和集函数 * 使用HAVING短语筛选最终输出结果 [例4.38] 查询选修了3门以上课程的学生学号。 SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) 3; ? ? * 例题 [补充例] 查询有3门以上课程是90分以上的 学生的学号及该生选修的(90分以上的)课程数 SELECT Sno, COUNT(*) FROM SC WHERE Grade=90 GROUP BY Sno HAVING COUNT(*)=3; * 使用HAVING短语筛选最终输出结果 只有满足HAVING短语指定条件的组才输出 HAVING短语与WHERE子句的区别:作用对象不同 WHERE子句作用于基表或视图,从中选择满足条件的元组。 HAVING短语作用于组,从中选择满足条件的组。 你只闻到我的香水,却没看到我的汗水。 你否定我的现在,我决定我的未来! 你嘲笑我一无所有,不配去爱,我可怜你总是等待。 你可以轻视我们的年轻,我们会证明这是谁的时代。 梦想是注定孤独的旅行,路上少不了质疑和嘲笑, 但那又怎样? 哪怕遍体鳞伤,也要活得漂亮! 你只闻到我的香水,却没看到我的汗水。 你否定我的现在,我决定我的未来! 你嘲笑我一无所有,不配去爱,我可怜你总是等待。 你可以轻视我们的年轻,我们会证明这是谁的时代。 梦想是注定孤独的旅行,路上少不了质疑和嘲笑, 但那又怎样? 哪怕遍体鳞伤,也要活得漂亮! * * (1) 比较大小 在WHERE子句的比较条件中使用比较运算符 =,,,=,=,!= 或 ,!,!, 逻辑运算符NOT + 比较运算符 [例4.17] 查询所有年龄在20岁以下的学生姓名及其年龄。 SELECT Sname, Sage FROM Student WHERE Sage 20; 或 SELECT Sname, Sage FROM Student WHERE NOT Sage = 20; * (1) 比较大小 在WHERE子句的比较条件中使用比较运算符 =,,,=,=,!= 或 ,!,!, 逻辑运算符NOT + 比较运算符 [例4.18] 查询考试成绩有不及格的学生学号。 SELECT distinct Sno FROM SC WHERE grade 60; * 思考 SELECT distinct Sno FROM SC WHERE grade 60 怎样用关系操作实现? Πsno(σgrade60 ) * (2) 确定范围 使用谓词 BETWEEN … AN
文档评论(0)