第五章-数据查询.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文档。上传文档
查看更多
内连接还可以用于多个表的连接。 【例5.22】 用JOIN关键字表达下列查询:查找购买了“网页程序设计”且订购数量大于5本的图书和会员姓名和订购册数。 SELECT Book.图书编号, 会员姓名, 书名, 订购册数 FROM Sell JOIN Book ON Book. 图书编号= Sell.图书编号 JOIN Members ON Sell.身份证号 = Members.身份证号 WHERE 书名 = 网页程序设计 AND 订购册数5 ; 多表连接举例 作为特例,可以将一个表与它自身进行连接,称为自连接。若要在一个表中查找具有相同列值的行,则可以使用自连接。使用自连接时需为表指定两个别名,且对所有列的引用均要用别名限定。 【例5.23】 查找BookStore数据库中订单不同、图书编号相同的图书的订单号、图书编号和订购册数。 SELECT a.订单号,a.图书编号,a.订购册数 FROM Sell AS a JOIN Sell AS b ON a. 图书编号=b. 图书编号 where a. 订单号!=b. 订单号; select student.sname,score.chinese,score.english,score.math from student join score join smajr where student.sid=score.sid=smajr.sid; 自表连接 如果要连接的表中有列名相同,并且连接的条件就是列名相等,那么ON条件也可以换成USING子句。USING(column_list)子句用于为一系列的列进行命名。这些列必须同时在两个表中存在。其中column_list为两表中相同的列名。 【例5.24】 查找Members表中所有订购过图书的会员姓名。 SELECT Distinct 会员姓名 FROM Members JOIN Sell USING (用户号); 查询的结果为Sell表中所有出现的身份证号对应的会员姓名。 例5.24的语句与下列语句等价: SELECT Distinct 会员姓名 FROM Members JOIN Sell ON Members.用户号=Sell.用户号; USING子句 多表查询 对YGGL数据库完成多表查询: 1、查询每个雇员的基本情况和薪水情况 2、查询“王林”的基本情况和所工作的部门名称 3、查询月收入在2000~3000元的员工姓名和支出 4、查询研发部在1970年以前出生的员工姓名和薪水情况 外连接 指定了OUTER关键字的连接为外连接。 外连接包括: ● 左外连接(LEFT OUTER JOIN): 结果表中除了匹配行外,还包括左表有的但右表中不匹配的行,对于这样的行,从右表被选择的列设置为NULL。 ● 右外连接(RIGHT OUTER JOIN): 结果表中除了匹配行外,还包括右表有的但左表中不匹配的行,对于这样的行,从左表被选择的列设置为NULL。 左外连接举例 T1 T2 T3 T4 T5 1 A 1 3 M 6 F 2 0 N 2 B T1 T2 T3 T4 T5 1 A 1 3 M 6 F NULL NULL NULL 2 B 2 0 N From A left join B on T1=T3: 表A 表B 外连接举例 【例5.25】 查找所有图书的图书编号、数量及订购了图书的会员身份证号,若从未订购过,也要包括其情况。 SELECT Book.图书编号,Book.数量,身份证号 FROM Book LEFT OUTER JOIN Sell ON Book.图书编号= Sell.图书编号; 【例5.26】 查找订购了图书的会员的订单号、图书编号和订购册数以及所有会员的会员姓名。 SELECT 订单号,图书编号,订购册数, Members.会员姓名 FROM Sell RIGHT JOIN Members ON Members.用户号= Sell.用户号; 子查询 在查询条件中,可以使用另一个查询的结果作为条件的一部分,例如,判定列值是否与某个查询的结果集中的值相等,作为查询条件一部

文档评论(0)

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

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

1亿VIP精品文档

相关文档