高级查询ppt课件.pptVIP

  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文档。上传文档
查看更多
高级查询ppt课件

[实例7.31] 在学生信息表中,在学号1001—1010中,求年龄的总值和平均年龄。 操作步骤: 第7章 高级查询 归纳分析: 使用COMPUTE和COMPUTE BY子句需要注意以下几点: (1) COMPUTE子句不能和SELECT INTO子句一起使用。 (2) 如果具有ORDER BY子句,列名必须出现在SELECT中。 (3) 聚集函数不能带DISTINCT关键字。 (4) 如果使用COMPUTE BY子句,必须使用ORDER BY子句;而且COMPUTE BY子句的列名称和顺序必须和ORDERBY相同。 (5) 如果具有COMPUTE BY子句,必须使用ORDER BY子句;在COMPUTE BY中出现的列,只能等于或者小于ORDER BY的列,且顺序要相同。 第7章 高级查询 7.8 使用嵌套查询 在一个SELECT语句中嵌入另一个完整的SELECT语句称为嵌套查询。嵌入的SELECT语句称为子查询,而包含子查询的SELECT语句称为外部查询。子查询自身可以包括一个或多个子查询,也可以嵌套任意数量的子查询。但子查询中返回的数据类型是有限制的,它不能使用image和text等数据类型,并且子查询返回的数据类型还必须和外部查询WHERE子句中的数据类型相匹配。 子查询既可以嵌套在SELECT语句中,也可以嵌套在UPDATE、DELETE和INSERT语句中。 第7章 高级查询 7.8.1 使用比较运算符的子查询 [实例7.32] 在学生成绩表中查询高于期末成绩的平均成绩的行。 操作步骤: 第7章 高级查询 归纳分析: 子查询可由一个比较运算符(:、、、:、、!、!或=)引入做为比较运算符的条件,子查询必须返回单个值做为外部查询中WHERE子句的比较参数。如果这样的子查询返回多个值,服务器将返回错误信息。 7.8.2 使用IN的子查询 使用IN(或NOTIN)关键字引入子查询时,允许子查询返回一列零值或多个结果值。它判断IN关键字前所指定的列值是否在子查询的结果中,IN是嵌套查询中最常用的关键字 。 第7章 高级查询 [实例7.33] 在学生信息表列出年龄等于18岁的学生成绩的记录。 操作步骤: 第7章 高级查询 归纳分析: 使用IN关键字进行嵌套查询的效率是较低的,尤其当一个列同时出现在外部查询和子查询中时,很可能当外部查询中的列值改变之后,子查询必须重新查询一次。查询嵌套的层次越多,效率越低,因此应当尽量避免子查询。可以将某些嵌套查询转化为等价的连接查询,以提高查询效率。如果子查询不可避免,那么要在子查询中过滤掉尽可能多的行。 7.8.3 使用EXISTS的子查询 使用EXISTS关键字引入一个子查询时,就相当于进行一次数据是否存在的测试。为了便于理解,我们可以把EXISTS想象为一个函数,而子查询是这个EXISTS函数的参数。它的作用是在WHERE子句中测试子查询返回的行是否存在。EXISTS子查询实际上不产生任何数据,它只返回TRUE或FALSE值。 第7章 高级查询 [实例7.34] 建立一个查询,使得如果在学生成绩表中存在期末成绩值小于70分的行,则将课程表中的数据全部检索出来。 操作步骤: 第7章 高级查询 归纳分析: 注意: (1)EXISTS关键字前面没有列名、常量或其他表达式。 (2)EXISTS所采用的嵌套查询之间的连接不是列之间的关系,而是表之间的关系,它只是测试在子查询中是否存在符合子查询中指定条件的行,所以子查询的选择列表通常几乎都是由星号(*)组成,不必列出列名。 (3)事实上服务器在对外部查询的每一行数据处理时都需要进行一次嵌套查询,但这个嵌套查询不一定需要执行完,只要发现条件成立,就会退出子查询。因此从查询效率考虑,能使用EXISTS的查询就不要使用IN查询,能使用连接查询就不要使用嵌套查询。 第7章 高级查询 7.8.4 用于替代表达式的子查询 [实例7.35] 列出年龄在20至25岁的学生信息的记录。 操作步骤: 归纳分析: 子查询还可以使用在SELECT、UPDATE、INSERT和DELETE语句中任何可以使用表左式的地方。例如把子查询放到SELECT语句的列清单中以直接获得查询结果而无需多次使召连接查询。 第7章 高级查询 [实例7.36]查询学生信息表中的学号和姓名,并使用子查询来获得该学生的总成绩。 操作步骤: 第7章 高级查询 7.8.4 使用SELECT INTO语句 将学习如何创建一个局部临时表。 [实例7.37]创建这个表的数据来源于SELECT语句。新

文档评论(0)

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

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

1亿VIP精品文档

相关文档