欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据库第08章多表联接.ppt

    • 资源ID:6296533       资源大小:511KB        全文页数:31页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库第08章多表联接.ppt

    第8章 多表联接,使用表的别名组合多个表中的数据合并多个结果集,使用表的别名,两种方式给字段起名 使用多表联接时,必须慎重地指定字段名,任何数据库对象名称包含四个标识:服务器名、数据库名、主人名称、对象名,SELECT*FROM AS 别名,SELECT*FROM 别名,使用表的别名(续),举例从订单详细表中查询单价高于100的订单号、产品号、单价,SELECT od.orderid,od.productid,od.unitprice FROM order details AS odWhere od.unitprice 100,表的别名,第8章 多表联接,使用表的别名组合多个表中的数据合并多个结果集,组合多个表中的数据,联接概述使用内联接使用外联接 使用交叉联接联接两个以上的表自联接(Self-Join),联接概述,从多个表中选择指定的字段关键字 JOIN 指定要联接的表,以及这些表联接的方式关键字 ON 指定联接条件查询两个或多个表并生成单个结果集所有联接的表必须共同拥有某些字段,这些字段必须有相同的或兼容的数据类型如果联接的表有相同字段,则引用这些字段时必须指定表名,联接概述(续),连接类型交叉连接:Cross Join(不太用)内连接:Inner Join(最常用)外连接:左外连接:Left Outer Join右外连接:Right Outer Join完全连接:Full Outer Join 自连接:Self Join,使用内联接,内联接通过比较被联接的表所共同拥有的字段,把多个表联接起来语法SELECT 列名列表FROM 表名1 INNER JOIN 表名2ON 表名1.列名 表名2.列名注意INNER可以省略。包括=、等。,使用内联接(续),USE joindbSELECT buyer_name,sales.buyer_id,qtyFROM buyers INNER JOIN salesON buyers.buyer_id=sales.buyer_idGO,sales,列出购买产品的顾客信息,使用内联接(续),USE joindbSELECT buyer_name,sales.buyer_id,qtyFROM buyers,salesWHERE buyers.buyer_id=sales.buyer_idGO,USE joindbSELECT buyer_name,sales.buyer_id,qtyFROM buyers INNER JOIN salesON buyers.buyer_id=sales.buyer_idGO,示例,比较之一,使用内联接(续),USE joindbSELECT buyer_name,sales.buyer_id,qtyFROM buyers INNER JOIN salesON buyers.buyer_id=sales.buyer_idGO,USE joindbSELECT*FROM buyers INNER JOIN salesON buyers.buyer_id=sales.buyer_idGO,比较之二,使用外联接,左外联接的结果表中除了满足连接条件的行,还包括左表中的所有剩余行,但不包括右表中的不匹配行使用左外联接时,请注意不满足联接条件的记录将显示空值左联接可以显示左表中所有记录可以把 LEFT OUTER JOIN 简写为 LEFT JOIN,使用外联接(左联接),USE joindbSELECT buyer_name,sales.buyer_id,qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_id=sales.buyer_idGO,查询所有购买者的购买情况,使用外联接(右联接),右外联接结果表中除了满足连接条件的行,还包括右表中的所有剩余行,但不包括左表中的不匹配行使用右外联接时,请注意不满足联接条件的记录将显示空值右联接可以显示右表中所有记录可以把 RIGHT OUTER JOIN 简写为 RIGHT JOIN,使用外联接(右联接),USE joindbSELECT buyer_name,sales.buyer_id,qty FROM buyers RIGHT OUTER JOIN sales ON buyers.buyer_id=sales.buyer_idGO,示例,使用交叉联接,交叉联接将从被联接的表中返回所有可能的记录组合为什么使用交叉联接在规范化的数据库中,很少使用交叉联接可以为数据库生成测试数据为清单及企业模板生成所有可能的组合数据,使用交叉联接(续),示例,select R.*,S.*from R inner join S on R.C=S.C,R,S,select R.*,S.*from R,Swhere R.C=S.C,内连接,内连接与几种外连接的对比,select*from R left outer join S on R.C=S.C,select R.A,R.B,S.*from R right outer join Son R.C=S.C,左外连接,右外连接,R,S,select R.*,S.*from R full outer join S on R.C=S.C,全外连接,R,S,联接两个以上的表,联接任意数目的表都有可能,通过使用共同拥有的字段,任何一个表都可以和其他表联接为什么要联接两个以上的表 使用多重联接可以从多个表中得到彼此相关的信息至少有一个表具有外键,把要联接的表按一定关系联系起来组合键中的每一字段都必须由一个相应的 ON 子句引用可以使用 WHERE 子句限制结果集所返回的记录,联接两个以上的表(续),SELECT buyer_name,prod_name,qty FROM buyers INNER JOIN sales ON buyers.buyer_id=sales.buyer_id INNER JOIN products ON sales.prod_id=products.prod_idGO,products,buyers,sales,什么顾客购买了什么产品,多少数量?,自联接(Self-Join),使用自联接,可以查询一个表中各记录之间的关系使用自联接时,应注意引用表的两份副本时,必须使用表的别名生成自联接时,表中每一行都和自身比较一下,并生成重复的记录,使用 WHERE 子句来消除这些重复记录,自联接(Self-Join)(续),USE joindbSELECT a.buyer_id AS buyer1,a.prod_id,b.buyer_id AS buyer2 FROM sales AS a JOIN sales AS b ON a.prod_id=b.prod_idWHERE a.buyer_id b.buyer_idGO,sales b,sales a,显示拥有相同产品的顾客列表。,第8章 多表联接,使用表的别名组合多个表中的数据合并多个结果集,合并多个结果集,使用 UNION 操作符可以将多个查询产生的结果集合并成一个结果集每一个查询必须有类似的数据、相同的字段数目,并且在选择列表中字段顺序相同UNION 与UNION ALL的区别UNION在进行表联接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。UNION ALL只是简单的将两个结果合并后就返回。如果需要排序,则要在最后一个有 UNION 的子句中使用 ORDER BY,以 指定排序方式。,合并多个结果集(续),举例:列出系号为12的所有人员(包括老师和学生)的姓名和出生日期。,合并多个结果集(续),SELECT 学生姓名 AS 姓名,出生日期 FROM 学生信息表 where 系号=12Union SELECT 教师姓名,出生日期 FROM 教师信息表 where 系号=12GO,示例,合并多个结果集(续),SELECT 学生姓名 AS 姓名,出生日期 FROM 学生信息表 where 系号=12Union all SELECT 教师姓名,出生日期 FROM 教师信息表 where 系号=12GO,示例,合并多个结果集(续),UNION 和 JOIN 的区别使用操作符 UNION,要求所引用的表必须具有相似的数据类型、相同的字段数,每个查询中的选择列表必须具有相同的顺序。使用操作符 JOIN,只要求联接的表共同拥有某些字段。用 UNION 分解复杂的查询会提高查询速度,而JOIN联接表越多,查询速度越慢。,回顾,学习完本章后,将能够:使用表的别名组合多个表中的数据合并多个结果集,

    注意事项

    本文(数据库第08章多表联接.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开