[理学]数据库 第五章续 嵌套查询与联合查询1-2学时+习题讲解_201210.pptVIP

[理学]数据库 第五章续 嵌套查询与联合查询1-2学时+习题讲解_201210.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]数据库第五章续嵌套查询与联合查询1-2学时习题讲解_201210

【例】将titles表和discounts表的两个查询结果合并到一起。 SELECT name=discounttype,value=discount FROM discounts UNION SELECT title,ytd_sales FROM titles WHERE title LIKE ‘T%’ * 第*页 * 第*页 联合查询时,查询结果的列标题为第一个查询语句中的列标题,因此要定义列标题时必须在第一个查询语句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名。 SELECT name=discounttype,value=discount FROM discounts UNION SELECT title,ytd_sales FROM titles WHERE title LIKE ‘T%’ ORDER BY value 2、联合查询结果排序 联合查询也可以对结果进行排序,这时必须把ORDER BY子句与最后一个SELECT语句放在一起使用,而且要对第一个SELECT语句的列名进行排序。 【例】对上例的结果集按照编号的降序排序。 SELECT 编号 FROM books WHERE 出版社=’青山’ UNION SELECT 图书编号 FROM borrowin ORDER BY 1 DESC * 3、 对单张表使用UNION操作符 使用UNION连接的所有SELECT语句也可以使用同一张表,此时UNION运算符可以用OR运算符来代替。 【例】查询蓝天出版社和碧水出版社的图书书名及作者姓名。 SELECT 书名, 作者 FROM books WHERE 出版社=’蓝天’ UNION SELECT 书名, 作者 FROM books WHERE 出版社=’碧水’ * 3、 对单张表使用UNION操作符 用OR运算符来代替UNION,查询语句可以改写为: SELECT 书名, 作者 FROM books WHERE 出版社=’蓝天’ OR出版社=’碧水’ * 4、 交操作和差操作 Transact-SQL不直接支持交操作和差操作,但可以使用EXISTS运算符来实现交操作,使用NOT EXISTS来实现差操作。 【例】查询曾经被借阅的青山出版社的所有图书编号。 SELECT 编号 FROM books WHERE 出版社=’青山’ AND EXISTS ( SELECT * FROM borrowinf WHERE 编号=图书编号) * 【例】查询没有被借阅过的青山出版社的所有图书编号。 SELECT 编号 FROM books WHERE 出版社=’青山’ AND NOT EXISTS ( SELECT * FROM borrowinf WHERE 编号=图书编号) * 5、UNION操作符和JOIN操作符区别与联系 UNION操作符和JOIN操作符都可以将两个或多个数据表连接在一起。但是,UNION操作符通常是连接两个或者多个SELECT查询语句,而JOIN操作符则是在一个SELECT查询语句中将两个或者多个表连接在一起。 在有些情况下,同一个操作任务,可以使用UNION或者JOIN两种不同的查询策略。 * 6、 连接查询和子查询的比较 有些问题使用子查询解决会更简单,有些问题使用连接查询可以变得简单,因此要根据实际情况进行选择。 当需要频繁地计算统计函数的值并将其用在外查询中作比较时,应该使用子查询。随着嵌套层数的增加,查询语句的性能会不断下降。 【例】查询books中价格最低的图书编号和书名。 SELECT 编号,书名 FROM books WHERE 定价=(SELECT min(定价) FROM books) * 当SELECT中的列来自于多于一个表时,则应该使用连接查询。但一般在INSERT,UPDATE和DELETE语句中不支持多表连接,要用子查询代替。 【例】查询读者编号、读者姓名、所借图书书名和借期。 SELECT readers.编号,readers.姓名, books.书名, borrowinf.借期 FROM

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档