数据库第08章 数据查询.ppt

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

8.3 SELECT基本查询 使用COMPUTE和COMPUTE BY子句汇总 使用COMPUTE子句可以在查询的结果集中生成汇总行的同时,还生成明细行。 语法:COMPUTE row_aggregate(column_name)   [,row_aggregate(colornn_name)...] [BY column_name[, column_name. . . ]] 例8-16:查询选课表中学号为s2008001的平均成绩及各科成绩。 select 学号,课程号,成绩 from 选课表 where 学号=s2008001 compute avg(成绩) 8.3 SELECT基本查询 COMPUTE子句生成集合函数结果附加在结果集的最后,当与BY一起使用时,COMPUTE子句在结果集内对指定列进行分组汇总。 例8-17:查询选课表中学生的各科成绩及平均成绩。select 学号,课程号,成绩 from 选课表 order by 学号 compute avg(成绩) by 学号 提示: COMPUTE子句中指定的列必须是SELECT子句中已有的。 COMPUTE BY必须与ORDER BY子句一起使用,且两个子句指定的列及顺序相同。 不能与SELECT INTO子句一起使用。 8.4 SELECT嵌套查询 有时一个SELECT语句无法完成查询任务,而需要一个子SELECT的结果作为查询的条件,即需要在一个SELECT语句的WHERE子句中出现另一个SELECT语句,这种查询称为嵌套查询。 通常把仅嵌入一层子查询的SELECT语句称为单层嵌套查询,把嵌入子查询多于一层的查询称为多层嵌套查询。 SQL Server允许多层嵌套查询,嵌套查询一般的查询方法是由里向外进行处理。 8.4 SELECT嵌套查询 单值嵌套查询 子查询的返回结果是一个值的嵌套查询。 例8-18:查询选课表中英语考试成绩。   select 学号,成绩,课程号 from 选课表   where 课程号=(select 课程号 from 课程表  where 课程名=英语) 8.4 SELECT嵌套查询 多值嵌套查询 子查询的返回结果是一列值的嵌套查询。如果子查询的返回值不止一个,则必须指明在WHERE子句中怎样使用这些值。通常会使用条件运算符ANY(或SOME)、ALL和IN。 ANY运算符:满足子查询中任意一个值的记录。 ALL运算符:满足子查询中所有值的记录。 IN运算符:字段内容是结果集合或者子查询中的内容。 8.4 SELECT嵌套查询 例8-19:查询选课表中成绩高于学号为s2008005的最低分的学号、课程号及考试成绩。 select * from 选课表 where 成绩any(select 成绩 from 选课表 where 学号=s2008005) 例8-20:查询选课表中成绩高于学号为s2008005的最高分的学号、课程号及考试成绩。 select * from 选课表 where 成绩ALL(select 成绩 from 选课表 where 学号=s2008005) 附学号为s2008005 的考试成绩: 8.4 SELECT嵌套查询 例8-21:查询选c02课程的学生信息。 select * from 学生表 where 学号 in (select 学号 from 选课表         where 课程号=c02) 提示:IN是属于的意思,等价于“=ANY” 8.5 连接查询 连接概述 通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其他类型数据库管理系统的一个标志。 通过连接运算符可以实现多个表查询。 建立连接的方法 where 子句 例8-22:查询学生考试成绩,要求给出学号、课程名和成绩。 select 学号,课程名,成绩 from 选课表,课程表 where 选课表.课程号=课程表.课程号 8.5 连接查询 from子句 语法:FROM 表1 [连接类型] JOIN 表2 ON 连接条件 如上题(例8-22)用from子句来实现查询: select 学号,课程名,成绩 from 选课表 inner join 课程表 on 选课表.课程号=课程表.课程号 课堂练习:查询学生考试成绩,要求显示课程号、姓名、成绩(分别用where子句和from子句实现)。 8.5 连接查询 使用表别名 由于查询来源于多个表,如果多个表有相同列,需要在列名前附加表名,形如表名.列名。表名可以是原表名,也可以用别名。 对比以下两段SQL语句,学会使用表

文档评论(0)

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

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

1亿VIP精品文档

相关文档