自然连接

select *

from r1 natural [inner] join r2 natural [inner] join r3

where P;

select A1,A2

from r1

natural [inner] join

r2,r3 where r2.A=r3.B;

自然连接中,匹配关系(relation,表)中属性(attribute,列)的属性名称相同的所有列,只保留所有属性名称都相同的元组(tuple,行),并显示出来;列出属性的顺序:首先列出两个关系中相同的属性,然后列出那些只存在在第一个关系中的属性,最后输出只存在第二个关系中的属性。

为了发扬自然连接的优点,同时避免不必要的相等属性带来的危险,SQL允许用户来指定需要那些列相等:

select *

from r1 [inner] join r2 using (attri_name);

注意事项:

1、如果在使用using关键字时,而且select的结果列表项中包含了using关键字所指明的那个关键字,那么请不要在select的结果列表项中对该关键字指明它属于哪个表。

2、using中仅能使用一个列名。

3、natural join关键字和using关键字是互斥的,也就是说不能同时出现。

外连接

1.左外连接

//自然连接(左外连接)

select *

from student natural left [outer] join grade;

//另一种左外连接方式(非自然连接)

select *

from student A left [outer] join grade B on A.id=B.id;

等价于

select *

from student A,grade B

where A.id=B.id(+);

2.右外连接

//自然连接(右外连接)

select *

from student natural right [outer] join grade;

//另一种右外连接方式(非自然连接)

select *

from student A right [outer] join grade B

on A.id=B.id;

select *

from student A,grade B

where A.id(+)=B.id;

3.全外连接

//自然连接(全外连接)

select *

from student natural full [outer] join on grade;

//另一种全外连接

select *

from student A full [outer] join grade B

on A.id=B.id;

(+)操作符只能出现在where子句中

当使用(+)操作符执行外连接时,如果在where子句中包含有多个条件,则必须在所有条件中都包含( +)操作符

(+)操作符只适用于列,而不能用在表达式上。

(+)操作符不能与or和in操作符一起使用。

(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。

内连接

当省略outer和inner时,默认为内连接

select *

from student A [inner] join grade B on A.id=B.id;

等价于

select *

from student A,grade B where A.id=B.id;

select *

from student [inner] join grade using(id);

的结果类似于自然连接,不重复显示id列~

oracle内连接使用,Oracle中的联合查询-自然连接/外连接/内连接相关推荐

  1. mysql全联合查询,MySQL中的联合查询(内联、左联、外联、右联、全联)

    联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join .全联full outer join 的好处及用法. T ...

  2. mysql中的联合查询(内联、左联、外联、右联、全联)

    联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join .全联full outer join 的好处及用法. 联 ...

  3. oracle report builder 6i下载,oracle report builder 6i - 数据模型中的SQL查询代码

    我是Vijetha,我正在研究报告6i,我很陌生 . 我有以下查询 . 在front_end中,在Reports Parameter中,当用户单击"运行"按钮时,它将询问START ...

  4. MySQL表中的联合查询

    上一篇有关聚合查询的博客: MySQL表中的聚合查询_徐憨憨!的博客-CSDN博客主要是针对单个表进行查询操作,但是实际的开发环境中,数据往往来自己于不同的数据表,此时就需要使用联合查询进行操作! 联 ...

  5. join实例 oracle_oracle中join联合查询

    1.概述 1.1.所有的join连接,都可以加上类似where a.id='1000'的条件,达到同样的效果. 1.2.除了cross join不可以加on外,其它join连接都必须加上on关键字,后 ...

  6. MySQL中的联合查询

    联合查询 联合查询:union,将多次查询(多条select语句)的结果,在字段数相同的情况下,在记录的层次上进行拼接. 联合查询由多条select语句构成,每条select语句获取的字段数相同,但与 ...

  7. MySQL表联合查询 理论基础:外键、操作关联表(一)

    前言 什么是外键? 外键是指引用另一个表的一列或多列,被引用的列应该具有主键约束或唯一性约束.外键用于建立和加强两个表数据之间的连接 先创建一张班级表t_class 不会创建外键的看 https:// ...

  8. 数据表中通过关联查询到每个外键ID所指的name以及其他属性

    之前我在网上百度,想要找到一个合适的方法老是找不到,自己现在解决了,在这里记录一下. 前提条件: 我有一张歌曲表.一张专辑表.一张歌手表. 其中歌曲表中有两个外键song_albumId.song_s ...

  9. python内置函数调用_Python中函数的基本定义与调用及内置函数详解

    前言 函数function是python编程核心内容之一,也是比较重要的一块.首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有 ...

最新文章

  1. SpringMVC js如何获取后台model中的属性值
  2. 需要监控JanusGraph的一些指标
  3. Qt+MinGW+OpenCV开发环境在win7系统下的搭建(最新20140423)
  4. java和python的比较-java和python的比较
  5. 寒假每日一题(提高组)【Week 2 完结】
  6. 【MM】SAP委外加工服务验收产生的会计凭证
  7. 分享一个自用的,随便找到的组件,留作记录
  8. 怎么实现阵列装配_第九篇:磁盘阵列和群晖SHR
  9. 台式电脑如何截屏_买台式电脑如何避免成为被宰羔羊(一)
  10. Redis进阶实践之二十 Redis的配置文件使用详解
  11. 康普顿效应是弹性碰撞吗_如何正确解读物理实验结果系列之十二——康普顿效应与光子...
  12. android 开发 目标绑定,Hippy: Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS、Android 和 Web)...
  13. java反编译工具jad安装
  14. python3.5中文手册chm_python3官方帮助文档-python3.5.2官方chm参考手册-东坡下载
  15. 整理99种好用的电脑软件
  16. 信息通信类部分中文期刊投稿心得(转帖)
  17. 基于SVM,KNN,CNN的数字图像识别
  18. 【故障分析】基于主成分分析实现三容水箱故障诊断附matlab代码
  19. python错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb5 in position 0: invalid start byte
  20. 用App Designer 制作2048小游戏

热门文章

  1. 在命令行上操作JAR,WAR和EAR
  2. 简而言之:JRunner
  3. 针对新手的Java EE7和Maven项目-第3部分-定义ejb服务和jpa实体模块
  4. 在Window上使用Jenkins自动部署和上传快照Java工件
  5. Spring REST:异常处理卷。 1个
  6. Java DB中的Java存储过程
  7. 用Java和Java 8创建内部DSL,采用Martin Fowler的方法
  8. 振作起来– Spring Framework 4.0即将来临!
  9. 用JavaFX编写图块引擎
  10. Java Servlet 编程,重定向介绍