oracle内连接使用,Oracle中的联合查询-自然连接/外连接/内连接
自然连接
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中的联合查询-自然连接/外连接/内连接相关推荐
- mysql全联合查询,MySQL中的联合查询(内联、左联、外联、右联、全联)
联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join .全联full outer join 的好处及用法. T ...
- mysql中的联合查询(内联、左联、外联、右联、全联)
联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join .全联full outer join 的好处及用法. 联 ...
- oracle report builder 6i下载,oracle report builder 6i - 数据模型中的SQL查询代码
我是Vijetha,我正在研究报告6i,我很陌生 . 我有以下查询 . 在front_end中,在Reports Parameter中,当用户单击"运行"按钮时,它将询问START ...
- MySQL表中的联合查询
上一篇有关聚合查询的博客: MySQL表中的聚合查询_徐憨憨!的博客-CSDN博客主要是针对单个表进行查询操作,但是实际的开发环境中,数据往往来自己于不同的数据表,此时就需要使用联合查询进行操作! 联 ...
- join实例 oracle_oracle中join联合查询
1.概述 1.1.所有的join连接,都可以加上类似where a.id='1000'的条件,达到同样的效果. 1.2.除了cross join不可以加on外,其它join连接都必须加上on关键字,后 ...
- MySQL中的联合查询
联合查询 联合查询:union,将多次查询(多条select语句)的结果,在字段数相同的情况下,在记录的层次上进行拼接. 联合查询由多条select语句构成,每条select语句获取的字段数相同,但与 ...
- MySQL表联合查询 理论基础:外键、操作关联表(一)
前言 什么是外键? 外键是指引用另一个表的一列或多列,被引用的列应该具有主键约束或唯一性约束.外键用于建立和加强两个表数据之间的连接 先创建一张班级表t_class 不会创建外键的看 https:// ...
- 数据表中通过关联查询到每个外键ID所指的name以及其他属性
之前我在网上百度,想要找到一个合适的方法老是找不到,自己现在解决了,在这里记录一下. 前提条件: 我有一张歌曲表.一张专辑表.一张歌手表. 其中歌曲表中有两个外键song_albumId.song_s ...
- python内置函数调用_Python中函数的基本定义与调用及内置函数详解
前言 函数function是python编程核心内容之一,也是比较重要的一块.首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有 ...
最新文章
- SpringMVC js如何获取后台model中的属性值
- 需要监控JanusGraph的一些指标
- Qt+MinGW+OpenCV开发环境在win7系统下的搭建(最新20140423)
- java和python的比较-java和python的比较
- 寒假每日一题(提高组)【Week 2 完结】
- 【MM】SAP委外加工服务验收产生的会计凭证
- 分享一个自用的,随便找到的组件,留作记录
- 怎么实现阵列装配_第九篇:磁盘阵列和群晖SHR
- 台式电脑如何截屏_买台式电脑如何避免成为被宰羔羊(一)
- Redis进阶实践之二十 Redis的配置文件使用详解
- 康普顿效应是弹性碰撞吗_如何正确解读物理实验结果系列之十二——康普顿效应与光子...
- android 开发 目标绑定,Hippy: Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS、Android 和 Web)...
- java反编译工具jad安装
- python3.5中文手册chm_python3官方帮助文档-python3.5.2官方chm参考手册-东坡下载
- 整理99种好用的电脑软件
- 信息通信类部分中文期刊投稿心得(转帖)
- 基于SVM,KNN,CNN的数字图像识别
- 【故障分析】基于主成分分析实现三容水箱故障诊断附matlab代码
- python错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb5 in position 0: invalid start byte
- 用App Designer 制作2048小游戏