Oracle连接多个表.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
练习3 生成居住在佛罗里达州并且订购了计算机图书的所有客户的列表. 总结 为什么要进行多表连接 两个表之间的笛卡尔连接 相等连接。传统的方法在WHERE子句中使用等号作为比较运算符。JOIN方法可以使用NATURAL JOIN、JOIN…USING或JOIN..ON关键字。 不等连接根据相等条件之外的其他任何条件建立一种关系。 必须将表和自身联接才能检索任何需要的信息时,就是用自我连接。 内部连接包包括相等连接,不等连接,自我连接。 外部连接,外部连接运算符(+),OUTER JOIN关键字 集合运算符 * Inspur group 谢谢大家! * * 连接多个表 Oracle SQL和PL/SQL编程 目标 创建一个笛卡尔连接 使用WHERE子句创建相等连接 使用JOIN关键字创建相等连接 使用WHERE子句创建不等连接 使用JOIN…ON方法创建不等连接 创建自我连接 区分内部连接和外部连接 使用WHERE子句创建外部连接 使用OUTER关键字创建外部连接 使用集合运算符结合多个查询的结果 连接三个或更多表 笛卡尔连接 又称为“笛卡尔乘积”或“交叉连接”,第一表中的每一个数据与第二个表中的每一个记录配对 如果第一个表中有m条记录,第二个表中有n条记录,结果是m*n条记录 笛卡尔连接——传统方法 查找每本书的出版社名称 SELECT title,name FROM books,publisher; 笛卡尔连接——JOIN方法 Oracle 中,可以使用CROSS关键字与JOIN关键字一起使用用来创建笛卡尔连接 SELECT title,name FROM books CROSS JOIN publisher; 相等连接 实际工作中,最常用的连接类型是对一个公共列中存储了相同数据的两个(或多个)表创建的,这种连接被称为“相等连接”,也可以称为“同等连接”,“内部连接”或“简单连接”。 公共列是两个或更多表中存在相同数据的列,比如, boooks和publisher表都包含一个Pubid的公共列,这个公共列标识为每一个出版社指定的标识代码。 相等连接——传统方法 传统方法是使用WHERE子句,等号用来指定对于在结果中连接和返回的行,每一个表中的Pubid列和内容必须完全相等。 SELECT title,name FROM books,publisher WHERE books.pubid = publisher.pubid; 注意:WHERE子句中的pubid列名称前面包括了对应得表名称。 相等连接——传统方法 需要输出这个pubid时,必须在SELECT子句中指明哪个表的,以便引起多义性错误,也就是说连接查询的两个表中有相同列明的时候,要指明具体是哪个表的列要显示 SELECT title,books.pubid,name FROM publisher,books WHERE publisher.pubid = books.pubid AND publisher.pubid=4; 相等连接——传统方法 查询成本低于15.00美元或者出版商id为1的任何图书书名,出版社编号,出版社名称,书的成本价 SELECT title,p.pubid,name,cost FROM publisher p,books b WHERE p.pubid=b.pubid AND (cost15 OR b.pubid=1); 用到了表别名,作用是为表临时指定一个不同的名称, 原因:表名过长不便于使用,可以使用表别名,还可以减少需要的内存 要记住一个规则:如果在FROM子句中指定了一个表别名,那么只要在这个SQL语句中引用这个表,就必须使用这个别名。 相等连接——JOIN方法 可以使用三种JOIN关键字的方法来创建相等连接: NATURAL JOIN,JOIN…USING和JOIN…ON NATURAL JOIN关键字将在包括一个同等命名和定义的字段的两个表之间自动创建连接 使用USING子句可以根据在两个表中具有相同名称和定义的列创建连接 当USING子句中连接的表没有包括一个同等命名和定义的字段时,必须添加一个WHERE子句或者向JOIN关键字添加ON子句,以便制定这两个表之间的关系。 相等连接——JOIN方法 列出books表中每一本书的书名以及对应的出版社ID和出版社名称 SELECT title,pubid,name FROM publisher NATURAL JOIN books; 注意:不需要指定两个表包含哪一个或哪些公共列,但暗示了至少存在一个具有相同名称的公共列 相等连接——JOIN方法 JOIN…USING方式 JOIN…ON方式 SELECT title,pubid,name FROM books

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档