谈谈oracle里的join、left join、right join
create table l as
select 'left_1' as str,'1' as v from dual union all
select 'left_2' ,'2' as v from dual union all
select 'left_3' ,'3' as v from dual union all
select 'left_4' ,'4' as v from dual ;
create table r as
select 'right_3' as str,'3' as v, 1 as status from dual union all
select 'right_4' as str,'4' as v, 0 as status from dual union all
select 'right_5' as str,'5' as v, 0 as status from dual union all
select 'right_6' as str,'6' as v, 0 as status from dual ;
select * from l; --where l.v not in (select r.v from r )
select * from r
--1. inner join 返回两表相匹配的数据 即 交集
select l.str as left_str,r.str as right_str from l
inner join r on l.v=r.v
order by 1,2;
select l.str as left_str,r.str rigth_str from l,r
where l.v=r.v
order by 1,2;
--2.left join 左表为主表,左表返回全部数据,右表只返回与左表相匹配的数据
select l.str as left_str,r.str right_str from l
left join r on l.v=r.v
order by 1,2;
select l.str as left_str,r.str as right_str from l,r
where l.v=r.v(+)
order by 1,2;
select l.str as left_str,r.str as right_str from l,r
where l.v=r.v
order by 1,2;
--3.right join 右表为主表,左表只返回与右表相匹配的数据
select l.str as left_str,r.str as right_str from l
right join r on l.v=r.v
order by 1,2;
select l.str as left_str,r.str right_str from l,r
where l.v(+)=r.v
order by 1,2;
--4. 左右表均返回全部的数据,但是只有相匹配的数据显示在一行,非匹配的数据只显示一个表的数据
select l.str as left_str,r.str as right_str from l
full join r on r.v=l.v
order by 1,2;
谈谈oracle里的join、left join、right join的更多相关文章
- 谈谈oracle里的join、left join、right join、full join-版本2
--1.left join 左表为主表,左表返回全部数据,右表只返回与左表相匹配的数据select t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje ...
- 06 hash join (Oracle里的哈希连接原理)
hash join (Oracle里的哈希连接原理) 2015年09月25日 17:00:28 阅读数:2188 哈希连接(HASH JOIN)是一种两个表在做表连接时主要依靠哈希运算来得到连接结果集 ...
- Oracle中join left,join right,inner join,(+) 等
Oracle中join left,join right,inner join,(+) 等 博客分类: Oracle 建表create table TEST1create table TEST1( ...
- Oracle 表的连接方式(1)-----Nested loop join和 Sort merge join
关系数据库技术的精髓就是通过关系表进行规范化的数据存储,并通过各种表连接技术和各种类型的索引技术来进行信息的检索和处理. 表的三种关联方式: nested loop:从A表抽一条记录,遍历B表查找匹配 ...
- Oracle性能优化之 Oracle里的优化器
优化器(optimizer)是oracle数据库内置的一个核心子系统.优化器的目的是按照一定的判断原则来得到它认为的目标SQL在当前的情形下的最高效的执行路径,也就是为了得到目标SQL的最佳执行计划. ...
- 基于Oracle的SQL优化(崔华著)-整理笔记-第2章“Oracle里的执行计划”
详细介绍了Oracle数据里与执行计划有关的各个方面的内容,包括执行计划的含义,加何查看执行计划,如何得到目标SQL真实的执行计划,如何查看执行计划的执行顺序,Oracle数据库里各种常见的执行计划的 ...
- oracle里的查询转换
oracle里的查询转换的作用 Oracle里的查询转换,有称为查询改写,指oracle在执行目标sql时可能会做等价改写,目的是为了更高效的执行目标sql 在10g及其以后的版本中,oracle会对 ...
- Oracle里的执行计划
1 执行计划的查看 1 explan plan 2 dbms_xplan包 3 sqlplus中 set autot 4 10046 5 awr报告 6一些现成的脚本 7 10053 常见的就前4种 ...
- 三大表连接方式详解之Nested loop join和 Sort merge join
在早期版本,Oracle提供的是nested-loop join,两表连接就相当于二重循环,假定两表分别有m行和n行 如果内循环是全表扫描,时间复杂度就是O(m*n) 如果内循 ...
随机推荐
- pandas的DataFrame用法
用来生成DataFrame数据 1.说明: class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=F ...
- Hadoop权限认证的执行流程
Hadoop分布式文件系统实现了一个和POSIX系统类似的文件和目录的权限模型.每个文件和目录有一个所有者(owner)和一个组(group).文件或目录对其所有者.同组的其他用户以及所有其他用户分别 ...
- Django REST Framework简单入门(一)
Django REST Framework(简称DRF),是一个用于构建Web API的强大且灵活的工具包. REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的. ...
- Selenium IDE编辑区域修改操作学习
1.修改command.target.value,选择需要修改的步骤,然后点击下方,既可以直接进行修改. 2.添加新的操作步骤:直接在下方编辑区域的下方点击,然后输入或者选择操作类型,然后点击Targ ...
- AVAudioFoundation(5):音视频导出
本文转自:AVAudioFoundation(5):音视频导出 | www.samirchen.com 本文主要内容来自 AVFoundation Programming Guide. 要读写音视频数 ...
- 【知识总结】Activiti工作流学习入门
1. 我理解的工作流: 在工作中慢慢接触的业务流程,就向流程控制语言一样,一步一步都对应的不同的业务,但整体串联起来就是一个完整的业务.而且实际工作中尤其是在企业内部系统的研发中,确实需要对应许多审批 ...
- lombok常见注解
一.使用lombok简化代码 lombok提供了很多注解,在编译时候生成java代码,代替了手工编写一些简单的代码,使程序员可以关注更重要的实现. 二.常用注解 以model为例 public cla ...
- 基于swing的MySQL可视化界面
个人记录贴... 代码过烂不宜参考.. 效果展示 1.选择需要打开的数据库,查看数据库下的表. 2.双击打开一个表 3.没有CRUD.... 代码 test-main: import shell.DB ...
- Cooperation.GTST团队第三周项目总结
项目进展 这周我们仍然在学习使用博客园的相关接口,页面的一个基本模块已经搭建出来了,但是页面整体效果还没有完全做出来.另外,我们在使用其他的APP时留意到许多APP都使用上拉加载和下拉刷新的效果,所以 ...
- 转 已知两点坐标和半径求圆心坐标程序C++
数学思想:利用圆方程和直线方程 已知两点坐标和半径求圆心坐标程序 #include <iostream> #include <fstream> #include <c ...