网站大量收购独家精品文档,联系QQ:2885784924

第四.3章用SQL实现数据查询.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四.3章用SQL实现数据查询

设已经创建有三张表 Course表数据(课程) SC表数据(学生选课) 其中列名为排序的依据列,可以是列名或列的别名。 ASC表示对列进行升序排序; DESC表示对列进行降序排序。 如果没有指定排序方式,则默认的排序方式为升序排序。 例18.查询选修了‘c02’课程的学生的学号及其成绩,查询结果按成绩降序排列。 SELECT Sno, Grade FROM SC WHERE Cno=‘c02’ ORDER BY Grade DESC 图P56 例19.查询全体学生的信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列。 SELECT * FROM Student ORDER BY Sdept, Sage DESC 注意: (1) 上述函数中除COUNT(*)外,其他函数在计算过程中均忽略NULL值。 (2)计算函数不能出现在WHERE子句中。 例:查询年龄最大的学生的姓名,如下写法是错误的: SELECT Sname FROM Student WHERE Sage = MAX(Sage) 有时我们需要对数据进行分组,然后再对每个组进行计算,而不是对全表进行计算。这时就需要用到分组子句:GROUP BY 。GROUP BY可将计算控制在组一级。分组的目的是细化计算函数的作用对象。在一个查询语句中,可以使用任意多个列进行分组。 使用GROUP BY时,如果在SELECT的查询列表中包含计算函数,则是针对每个组计算出一个汇总值,从而实现对查询结果的分组统计。 使用HAVING HAVING子句用于对分组后的结果再进行过滤,它的功能有点像WHERE子句,但它用于组而不是对单个记录。在HAVING子句中可以使用计算函数,但在WHERE子句中则不能。HAVING通常与GROUP BY子句一起使用。 SELECT Sname, Cno, Grade FROM Student JOIN SC ON Student.Sno = SC.Sno WHERE Sdept = 计算机系 SQL可以为表提供别名,其格式为: 源表名 [ AS ] 表别名 例如:使用别名时 例2(上例)可写为: SELECT Sname, Cno, Grade FROM Student S JOIN SC ON S.Sno = SC.Sno WHERE Sdept = 计算机系 LEFT T [OUTER] JOIN 称为左外连接,它限制表2中的数据必须满足连接条件,不管表1的数据是否满足均输出表1 的内容。 RIGHT [OUTER] JOIN 称为右外连接,它限制表1中的数据必须满足连接条件,不管表2的数据是否满足均输出表2 的内容。 SELECT S2.Sname, S2.Sdept FROM Student S1 JOIN Student S2 ON S1.Sdept = S2.Sdept 连接条件为相同系 WHERE S1.Sname = ‘刘晨’ 在S1表找刘晨所在行(或记录) AND S2.Sname != ‘刘晨’ 在S2表中去掉刘晨 结果为: 类型9.对查询结果进行分组计算 分组语句跟在WHERE子句的后边,它的一般形式为: GROUP BY 分组依据列 [,… n ] [HAVING 组提取条件] 例22.统计每门课程的选课人数,列出课程号和人数。(见下页表) SELECT Cno GROUP BY Cno as 课程号, COUNT(Sno) FROM SC as 选课人数 注意:分组依据列不能是 text ntext image bit 类型的列 80 op 1 9512103 75 db 2 9512103 88 op 1 9512102 78 db 2 9512102 90 ma 4 9512101 86 db 2 9512101 85 op 1 9512101 grade cname cno sno 3 2 3 1 1 4 人数 课程号 SC表 例23.查询修课门数等于或大于3门的学生的平均成绩和选课门数。(见下页) 例23.查询修课门数等于或大于3门的学生的平均成绩和选课门数。 80 op 1 9512103 75 db 2 9512103 88 op 1 9512102 78 db 2 9512102 90 ma 4 9512101 86 db 2 95

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档