oracle连接多个表

oracle连接多个表

ID:36316419

大小:3.35 MB

页数:33页

时间:2019-05-09

oracle连接多个表_第1页
oracle连接多个表_第2页
oracle连接多个表_第3页
oracle连接多个表_第4页
oracle连接多个表_第5页
资源描述:

《oracle连接多个表》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、连接多个表OracleSQL和PL/SQL编程目标创建一个笛卡尔连接使用WHERE子句创建相等连接使用JOIN关键字创建相等连接使用WHERE子句创建不等连接使用JOIN…ON方法创建不等连接创建自我连接区分内部连接和外部连接使用WHERE子句创建外部连接使用OUTER关键字创建外部连接使用集合运算符结合多个查询的结果连接三个或更多表笛卡尔连接又称为“笛卡尔乘积”或“交叉连接”,第一表中的每一个数据与第二个表中的每一个记录配对如果第一个表中有m条记录,第二个表中有n条记录,结果是m*n条记录笛卡尔连接——传统方法查找每本书的出版社名称SELECTtitl

2、e,nameFROMbooks,publisher;笛卡尔连接——JOIN方法Oracle中,可以使用CROSS关键字与JOIN关键字一起使用用来创建笛卡尔连接SELECTtitle,nameFROMbooksCROSSJOINpublisher;相等连接实际工作中,最常用的连接类型是对一个公共列中存储了相同数据的两个(或多个)表创建的,这种连接被称为“相等连接”,也可以称为“同等连接”,“内部连接”或“简单连接”。公共列是两个或更多表中存在相同数据的列,比如,boooks和publisher表都包含一个Pubid的公共列,这个公共列标识为每一个出版社指

3、定的标识代码。相等连接——传统方法传统方法是使用WHERE子句,等号用来指定对于在结果中连接和返回的行,每一个表中的Pubid列和内容必须完全相等。SELECTtitle,nameFROMbooks,publisherWHEREbooks.pubid=publisher.pubid;注意:WHERE子句中的pubid列名称前面包括了对应得表名称。相等连接——传统方法需要输出这个pubid时,必须在SELECT子句中指明哪个表的,以便引起多义性错误,也就是说连接查询的两个表中有相同列明的时候,要指明具体是哪个表的列要显示SELECTtitle,books.

4、pubid,nameFROMpublisher,booksWHEREpublisher.pubid=books.pubidANDpublisher.pubid=4;相等连接——传统方法查询成本低于15.00美元或者出版商id为1的任何图书书名,出版社编号,出版社名称,书的成本价SELECTtitle,p.pubid,name,costFROMpublisherp,booksbWHEREp.pubid=b.pubidAND(cost<15ORb.pubid=1);用到了表别名,作用是为表临时指定一个不同的名称,原因:表名过长不便于使用,可以使用表别名,还可

5、以减少需要的内存要记住一个规则:如果在FROM子句中指定了一个表别名,那么只要在这个SQL语句中引用这个表,就必须使用这个别名。相等连接——JOIN方法可以使用三种JOIN关键字的方法来创建相等连接:NATURALJOIN,JOIN…USING和JOIN…ONNATURALJOIN关键字将在包括一个同等命名和定义的字段的两个表之间自动创建连接使用USING子句可以根据在两个表中具有相同名称和定义的列创建连接当USING子句中连接的表没有包括一个同等命名和定义的字段时,必须添加一个WHERE子句或者向JOIN关键字添加ON子句,以便制定这两个表之间的关系。

6、相等连接——JOIN方法列出books表中每一本书的书名以及对应的出版社ID和出版社名称SELECTtitle,pubid,nameFROMpublisherNATURALJOINbooks;注意:不需要指定两个表包含哪一个或哪些公共列,但暗示了至少存在一个具有相同名称的公共列相等连接——JOIN方法JOIN…USING方式JOIN…ON方式SELECTtitle,pubid,nameFROMbooksJOINpublisherUSING(pubid);SELECTtitle,nameFROMbooksbJOINpublisherpONb.pubid=p

7、.pubid;如果不查询公共列时SELECTtitle,b.pubid,nameFROMbooksbJOINpublisherpONb.pubid=p.pubid;如果查询公共列,要指出具体出自哪个表相等连接——JOIN方法随JOIN关键字使用USING和ON子句,其间存在的两个主要区别只有当连接的表包括一个具有相同名称的公共列式才能使用USING子句,这不是ON子句所必须的条件是在ON子句中指定的,这在USING中不允许,USING子句只能包含公共列的名称练习1创建一个列表,显示每本书的书名以及出版社办公室中你再次定购每本书时需要与之联系的人的姓名和电

8、话号码。不等连接在不能使用等号连接相关列的时候,也就是表中不存在可以连接的相同行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。