参考链接(非常棒)


摘要

下面主要以两个例子进行说明:


例子1:


  表A结构如下:  

  1. select * from A
  |

  表B结构如下:  

  1. select * from B
  

 两个表要做连接,就必须有个连接字段,在A表中的Aid和B表中的Bnameid就是两个连接字段。

  下图3说明了连接的所有记录集之间的关系:

  


图3:连接关系图

要注意上图中标志的数字

  现在我们对内连接和外连接一一讲解。

  1.内连接:利用内连接可获取两表的公共部分的记录,即图3的记录集C

  语句如下:

  1. Select * from A JOIN B ON A.Aid=B.Bnameid
  运行结果如下图4所示:

  
图4:内连接数据-共8条记录

  其实select * from A,B where A.Aid=B.Bnameid与Select * from A JOIN B ON A.Aid=B.Bnameid的运行结果是一样的。

  2.外连接:外连接分为两种,一种是左连接(Left JOIN)和右连接(Right JOIN)

  (1)左连接(Left JOIN):即图3公共部分+记录集A1。

  语句如下:

  1. select * from A Left JOIN B ON A.Aid=B.Bnameid
  运行结果如下图5所示:

  
图5:左连接数据

  结论:内连接得到的数据+左边表格的4条数据(1,4,5,9)

  (2)右连接(Right JOIN):即图3公共部分+记录集B1

  语句如下:

  1. select * from A Right JOIN B ON A.Aid=B.Bnameid
  运行结果如下图6所示:

  
图6:右连接数据

   结论:内连接得到的数据+右边表格的1条数据(11)


  其他说明:

  1.  select * from B Left JOIN A ON A.Aid=B.Bnameid
等价于
  1. select * from A Right JOIN B ON A.Aid=B.Bnameid

例子2:

select * from test1;
select * from test2;
内连接:select * from test1 t1 join test2 t2 on t1.aa = t2.xx; 
左连接:select * from test1 t1 left join test2 t2 on t1.aa = t2.xx;

有连接:select * from test1 t1 right join test2 t2 on t1.aa = t2.xx;


博客:
  淘宝-代做毕设:



【Oracle学习笔记-4】内连接和外连接的区别的更多相关文章

  1. mysql学习笔记(七)—— MySQL内连接和外连接

        MySQL内连接(inner join on) MySQL的内连接使用inner join on,它的效果跟使用where是一样的,如果联结的是两个表,那么需要左右的条件或者说字段是需要完全匹 ...

  2. Oracle内连接、外连接、右外连接、全外连接小总结

    数据库版本:Oracle 9i 表TESTA,TESTB,TESTC,各有A, B两列 A B 001 10A 002 20A A B 001 10B 003 30B A B 001 10C 004 ...

  3. Oracle 内连接和外连接

    内连接用于返回满足连接条件的记录:而外连接则是内连接的扩展,它不仅会返回满足连接条件的所有记录,而且还会返回满足不满足连接条件的记录!从Oracle9i开始,可以在From 子句中指定连接语法.语法如 ...

  4. oracle中的内连接和外连接区别

    表t_user1,t_user2,t_user3,各有id,name两列 id name 1 10A 2 20A id name 1 10B 3 30B id name 1 10C 4 40C 连接分 ...

  5. oracle 内连接、外连接、自然连接、交叉连接练习

    oracle 内连接.外连接.自然连接.交叉连接练习 --查询员工信息 select * from emp; --查询部门信息 select * from dept; --需求:查询员工姓名.薪资和所 ...

  6. oracle表内连接和外连接

    n  概述 表连接分为内连接和外连接 n  内连接 内连接实际上就是利用where子句对两张表形成的笛卡尔集进行筛选,我们前面学习的查询都是内连接,也是在开发过程中用的最多的连接查询. 基本语法: s ...

  7. 【Oracle】内连接、外连接、(+)的使用

    表各有A, B两列 A B 001 10A 002 20A A B 001 10B 003 30B A B 001 10C 004 40C 连接分为两种:内连接与外连接. A.内连接 内连接,即最常见 ...

  8. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  9. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

随机推荐

  1. 发布b3log-solo后,访问http://localhost:8080/b3log-solo/提示错误为staticServePath Error。

    发布b3log-solo后,访问http://localhost:8080/b3log-solo/提示错误为staticServePath Error. latke.props内容为: serverS ...

  2. 冒泡排序(python版)

    实现源码 def bubble(array): flag = len(array)- : iter = for i in range(flag): ]: array[i], array[i+]= ar ...

  3. 使用Dnsmasq搭建本地dns服务器上网

    导读 搭建一个属于自己的本地DNS服务器很有必要,利用Dnsmasq来搭建一个属于自己的本地DNS服务器,享受更干净无污染.更智能快速和没有广告干扰的DNS解析服务. 一.Dnsmasq安装 安装并启 ...

  4. Munin监控的安装与配置

    Munin 是一款类似 RRD tool 的优秀系统监控工具,它能提供给你多方面的系统性能信息,例如 磁盘.网络.进程.系统和用户. Munin 的工作原理 Munin 以客户端-服务器模式运行,主服 ...

  5. 多进程和atexit清理函数

    前言: 最近帮朋友review其模块服务代码, 使用的是python的twisted网络框架. 鉴于之前并没有使用过, 于是决定好好研究一番. 不过这个问题, 和twisted网络框架本身没有关系, ...

  6. 彻底弄懂css中单位px和em,rem的区别 转的自己看

    国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的 ...

  7. jquery中prop()方法和attr()方法的区别

    最近在用jquery的时候遇到一个问题,那就是attr()方法,发现这个方法有时候使用会有一些说不出原因的问题.翻翻自己之前笔记发现,还有个函数prop(). 这两个函数都可以用来获取属性. jque ...

  8. PHP实例开发(1)PHP站内搜索

    PHP站内搜索:多关键字.加亮显示 1.SQL语句中的模糊查找 $sql = "SELECT * FROM `message` WHERE `content`like '%$k[0]%' a ...

  9. ARM体系的7种工作模式

    一.ARM体系的CPU有以下7种工作模式:   用户模式(usr)    大多数程序运行于用户模式 特权模式   系统模式(sys)   运行具有特权的操作系统任务 异常模式 中断模式(irq)   ...

  10. PHP-网页跳转的几种方式

    本文总结了跳转到指定网页的几种方式. 1.利用PHP的header函数Location响应头, header是用来向浏览器返回HTTP响应头(详细请看HTTP协议详解) <?php header ...