数据库应用技术——SQL Server 2008 R2 第2版 作者 周慧 施乐军 数据库应用技术7_2.pptVIP

数据库应用技术——SQL Server 2008 R2 第2版 作者 周慧 施乐军 数据库应用技术7_2.ppt

  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文档。上传文档
查看更多
* 三、联合查询 案例: 从图书管理数据库“Library”的图书表“Book”中,查询出“人民邮电出版社”出版的图书和“清华大学出版社”出版的图书的作者名,不包括重复的行并将查询结果进行排序。 执行结果: 2.联合查询结果排序 * SELECT数据查询小结 * SELECT数据查询小结 * 1.SELECT的ANSI连接 INNER JOIN:内连接 LEFT [OUTER] JOIN:左外连接 RIGHT [OUTER] JOIN:右外连接 CROSS JOIN:交差连接 2.SELECT子查询 [NOT] IN子查询 ALL比较子查询 EXISTS子查询 2.UNION联合查询 * 一、ANSI连接查询 步骤2:对表“Borrow”与表“Borrow”自连接加选择条件和投影操作。 代码: SELECT x.RID,x.BID,x.ReturnDate --投影去重复列名 FROM Borrow x JOIN Borrow y ON x.RID=y.RID --读者编号等值条件自连接 WHERE x.ReturnDate IS NULL AND y.ReturnDate IS NULL --还期为空,即尚未归还 AND x.BIDy.BID --图书编号不用,即两本不同的书 4.自连接 * 一、ANSI连接查询 查询结果: 说明:仔细观察,可以发现连接查询结果的第5行和第6行数据中读者编号“RID”相同,但书号“BID”不同,说明该读者至少借阅了两本书。在以上查询的WHERE子句中加上“x.BIDy.BID”查询条件,就可以查询出借阅了两本以上的读者编号了。这里“x.ReturnDate IS NULL”描述了读者借阅图书尚未归还的条件。 4.自连接 * 一、ANSI连接查询 语法: FROM表名1 CROSS JOIN表名2 说明: 两个表进行笛卡尔积计算,等价于FROM表名1,表名2之后不加WHERE连接条件逻辑表达式。 一般没有意义 5.交叉连接 * 一、ANSI连接查询 语法: FROM 表名1 JOIN 表名2 ON 连接表达式 JOIN 表名3 ON 连接表达式[,…,n] 说明: 最多可以连接64个表,通常为8~10个。 6.多表连接 * 一、ANSI连接查询 案例:对读者表“Reader”、借阅表“Borrow”和图书表“Book”三个表进行等值连接。 代码: SELECT t1.RID,Rname,Bname,LendDate FROM Reader t1 JOIN Borrow t2 ON t1.RID=t2.RID JOIN Book t3 ON t2.BID=t3.BID 查询结果: 6.多表连接 * 单元7_2 SELECT数据查询(案例2) * ANSI连接查询 1 子查询 2 联合查询 3 二、子查询 功能说明: 子查询指在一个SELECT查询语句的WHERE子句中包含另一个SELCET查询语句,或者将一个SELECT查询语句嵌入在另一个语句中成为其一部分。 在外层SELECT查询语句称为主查询,WHERE子句中的SELECT查询语句被称为子查询。 子查询可描述复杂的查询条件,也称为嵌套查询。嵌套查询一般会涉及到两个以上的表,所做的查询有的也可以采用连接查询或者用几条查询语句完成。 采用子查询有时会提高算法的时间和空间效率,但算法不易读懂,读者应权衡利弊进行选择。 SELECT…FROM…SELECT… * 二、子查询 语法: 列名 [NOT] IN (子查询) 说明: WHERE子句中列名的值(不)被包含在子查询结果的集合中时,逻辑表达式的值为(假)真。 当没有用EXISTS 引入子查询时,在子查询的SELECT投影列表中只能指定一个表达式。 1.[NOT] IN 子查询 * 二、子查询 案例:从图书管理数据库“Library”中查询出借阅过“人民邮电出版社”出版图书的读者编号(不包括重复的行)。 代码: USE Library SELECT DISTINCT RID--投影满足条件的读者编号,去重复行 FROM Borrow --对于表“Borrow”中的每一行数据 --判断其所借图书的编号是否在对表“Book”子查询的集合中 WHERE BID IN (SELECT BID FROM Book WHERE Publisher=人民邮电出版社) --人民邮电出版社图书的编号集合 1.[NOT] IN 子查询 * 二、子查询 代码: USE Li

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档