elect ename,job,sal
from emp where deptno>10
order by sal desc;



联合查询,PK dept.deptno FK emp.deptno 
select emp.ename,dept.dname,dept.deptno from emp join dept on emp.deptno = dept.deptno;
也可以指定别名:
select e.ename,d.dname,d.deptno from emp e  join dept d on e.deptno = d.deptno;

select e.ename,d.dname,d.deptno from emp e  join dept d on e.deptno = d.deptno where e.ename='SMITH';


dept : 主键被参照,是主表,父表
emp: 外键参照dept的PK,从表


select e.ename,d.dname,d.deptno from emp e  join dept d on e.deptno = d.deptno where e.ename='SMITH';

emp
驱动表

dept 匹配表

1. 匹配不上, t1表的该结果不会出现
2. t1 在t2中只有一个匹配
3. t1在t2有多条记录, 这时会形成多个组合,出现在结果集里面

不管驱动表还是匹配表,只有匹配之后才会有记录



select e.ename,e.sal,d.dname from emp e join dept d on e.deptno = d.deptno AND e.job='MANAGER';

select e.ename,e.sal,e.job,d.dname from emp e join
dept d on e.deptno = d.deptno AND e.job='MANAGER';




非等值连接


select e.ename,e.sal, s.grade
from emp e join salgrade s
on e.sal between s.losal and s.hisal;
自参照 自己的某一列参照自己的PK

select worker.ename as name, manager.ename as Mname
from emp worker  join emp manager on worker.mgr = manager.empno;

内连接 等值连接,非等值 自连接

外连接
select e.ename,d.dname
from emp e join dept d
on e.deptno = d.deptno;

select e.ename,d.dname
from emp e left outer join dept d
on e.deptno = d.deptno;


left outer 

t1度一条数据。T2中开始匹配,找得到就形成记录,匹配不上,那么,就放一个null



t1 left outer t2 t1 是驱动表
t1 right outer t2 t2是驱动表

t1 full outer t2 无论是否匹配,都将显示

select e.ename, d.dname
from emp e full outer join dept d
on e.deptno = d.deptno;

版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle 内连接 外连接 查询 笔记的更多相关文章

  1. Oracle内链接+外连接详解

    inner join(内连接) 内连接也称为等同连接,返回的结果集是两个表中所有相匹配的数据,而舍弃不匹配的数据.也就是说,在这种查询中,DBMS只返回来自源表中的相关的行,即查询的结果表包含的两源表 ...

  2. 知识点:Oracle+表连接方式(内连接-外连接-自连接)+详解 来自百度文库

    Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)        (2)右外连接(右边的表不加限制)        (3)全外连接(左右 ...

  3. mysql数据库中的多表查询(内连接,外连接,子查询)

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  4. sql内连接外连接自然连接

    为什么我们要使用内连接和外连接呢?可以从两张或者多张表中找出,我们需要的属性. 这个比较好:http://www.cnblogs.com/youzhangjin/archive/2009/05/22/ ...

  5. 【cl】多表查询(内、外连接)

    交叉连接(cross join):该连接产生的结果集笛卡尔积 a有7行,b有8行    a的第一行与b的每一行进行连接,就有8条a得第一行 7*8=56条 select a.real_name,s.u ...

  6. ORACLE 左连接 右连接 内连接 外连接 全连接 五中表连接方式

    1.左连接 :left join 2.右连接:right join 3.内连接:inner join 4.外连接:outer join 5.全连接:full join

  7. mysql 内连接 左连接 右连接 外连接

    mysql> desc student;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | ...

  8. SQL中的内连接外连接和交叉连接是什么意思?

    内连接又分为等值连接.自然连接和不等连接三种. 外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN).右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接( ...

  9. SQL内连接-外连接join,left join,right join,full join

    1.创建测试表test1及test2 SQL)); 表已创建. SQL)); 表已创建. ,'name1'); ,'name2'); ,'name3'); ,'name4'); ,'name5'); ...

随机推荐

  1. Xcode iphone模拟器运行不流畅

    xcode该需要多高的配置......把这个取消就好了

  2. JS常用方法手记

    1.判断arr数组是否含有元素str,没有返回-1 arr.indexOf(str) 2.遍历arr数组,k为键,v为值 arr.map((v, k) => { return;}) 3.arr数 ...

  3. Windows操作系统远程Linux服务器传输文件方法(以EasyDSS云平台、EasyNVR上传部署为例)

    本文转自博客:https://blog.csdn.net/black_3717/article/details/79769406 问题背景: 之前给客户部署我们一款EasyDSS云平台(配合EasyN ...

  4. 九度OJ 1009:二叉搜索树 (二叉树)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6321 解决:2767 题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需 ...

  5. 我的Java开发学习之旅------>使用Working Setst将Eclipse中的项目分类使项目一目了然

    今天发现Eclipse中若有太多的项目,杂七杂八的,看起来会非常的痛苦.今天请教公司的前辈学会了一个方法,在Eclipse中,当项目比较多的时候,我们可以用WorkingSet将这些项目分类,把相关连 ...

  6. elasticsearch 简单聚合查询示例

    因为懒癌犯了,查询语句使用的截图而不是文字,导致了发布随笔的时候提示少于150字的随笔不能发布. 我就很郁闷了. 下面的查询都是前段时间工作中使用过的查询语句. 开始的时候是使用nodejs构建es查 ...

  7. PAT 乙级 1084. 外观数列 (20) 【字符串】

    题目链接 https://www.patest.cn/contests/pat-b-practise/1084 思路 用字符串模拟 然后要注意一点 它是连续的 才并在一起 就比如说 d, d1, d1 ...

  8. [Android] Gradle 安装

    Gradle安装非常简单,只要从官网下载压缩包,解压,修改一下环境变量即可. 笔者写本篇随笔时,版本是1.12. Windows下安装 1 到官网(http://www.gradle.org/down ...

  9. cdcqの省选膜你赛 题解

    题解: 第一题: 有一个很明显的性质:后面的修改不会对前面的询问做出影响,CDQ分治套上BIT即可. 第二题: 有一个类似于斜率的形式,分数规划套上树分治,码量稍大,细节稍多. 最后20W的点出题人原 ...

  10. poj1328 Radar Installation —— 贪心

    题目链接:http://poj.org/problem?id=1328 题解:区间选点类的题目,求用最少的点以使得每个范围都有点存在.以每个点为圆心,r0为半径,作圆.在x轴上的弦即为雷达可放置的范围 ...