参考链接(非常棒)


摘要

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


例子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. Jquery attr判断服务器单选按钮失败

    在项目中用 jquey的attr方法获取服务器控件的单选按钮checked属性会不成功, 单选选中改变,用attr获取不到最新的值,但是用 $("#rdbPartySend").i ...

  2. 数组右移(C++)

    数组A,右移k位,要求在线性时间内完成. #include <iostream> using namespace std; template <typename T> void ...

  3. HOG特征(Histogram of Gradient)总结(转载)

    整理一下我个人觉得比较好的HOG博文 博文1:OpenCV HOGDescriptor: 参数与图解 http://blog.csdn.NET/raodotcong/article/details/6 ...

  4. 用无线网络进行Android开发中的调试

    1.手机具有root权限 2.安装adbWireless1.5.4.apk (下面有下载地址) 3.敲入命令:adb connect 192.168.1.127  后面是手机的IP地址 打开eclip ...

  5. RaidoGroup+RadioButton模拟android下拉框弹出List

    引用 <上面的Hello world!是居左的,但是下面的文字却怎么都不能靠边.试了各种方法都不行.最后,无意中给RadioButton添加一个backgroud属性即可:<RadioBu ...

  6. HTML---常见标签与插入背景音乐;

     插入背景音乐 (一).基本语法: embed src=url 说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等, Netscape及新版的IE 都支持 ...

  7. js部分---表单验证;(含正则表达式)

    1.非空验证 <div>用户名:<input id="yhm" type="text" name="yhm" />& ...

  8. leetcode 39 Combination Sum --- java

    Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher ...

  9. POJ1149 PIGS (网络流)

                                                                             PIGS Time Limit: 1000MS   M ...

  10. 【P1373】奶牛的卧室

    看山神的题解写出来的,sro_dydxh_orz 原题:奶牛们有一个习惯,那就是根据自己的编号选择床号.如果一头奶牛编号是a,并且有0..k-1一共k张床,那么她就会选择a  mod  k号床作为她睡 ...