`

外连接outer join

SQL 
阅读更多

    外连接分为左外连接、右外连接、全外连接。对应sql语句是:table 1 left/right/full outer join table2,通常我们省略outer。

    利用一个例子说明数据库的外连接问题:

    首先建2张表,outj1和outj2,分别只有2个字段:

create table outj1(
       o1_id  varchar2(4),
       o1_name varchar2(10)
)

 

create table outj2(
       o2_id  varchar2(4),
       o2_name varchar2(10)
)

    向2个表里插入一些数据:

   

insert into outj2 values('3','另一个3')
select * from outj1
select * from outj2

   

    outj1的数据为:
   
   

     outj2的数据为:
   
 

    outj1为左表,outj2为右表:

   

----左外连接(outj1为左表,outj2为右表)
select * from outj1 left outer join outj2 on outj1.o1_id=outj2.o2_id --注意这里是用on关键字
select * from outj1,outj2 where outj1.o1_id = outj2.o2_id(+); --注意这里是用where关键字,+位置

    左外连接结果: 左表的所有行记录都显示,右表中id(条件)相同的元组显示,不匹配的为null
   
 

----右外连接
select * from outj1 right outer join outj2 on outj1.o1_id=outj2.o2_id
select * from outj1,outj2 where outj1.o1_id(+) = outj2.o2_id;    

    右外连接结果:右表的所有行记录都显示,左表中id(条件)相同的元组显示,不匹配的为null
   
 

----全外连接
select * from outj1 full outer join outj2 on outj1.o1_id=outj2.o2_id 
select * from outj1,outj2 where outj1.o1_id(+) = outj2.o2_id(+);  --错误的写法

    全外连接结果:左右两表的所有元组都显示,相同id(条件)的在一行上,不同id(条件)单独显示,不匹配的为null
   
 

    (+)的用法:

    1.+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。
   2.
当使用(+)操作符执行外连接时,如果在where子句中包含多个条件,必须在所有条件中包含(+)操作符
   3.
+)操作符只适用于列,而不能用在表达式上。
   4.
+)操作符不能与orin操作符一起使用。
   5.
+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。

  内连接:

  

----内连接,使用inner join 关键字
select * from outj1 inner  join outj2 on outj1.o1_id=outj2.o2_id 

  

  查询结果:相同的属性值才显示

  
  
 

 

  • 大小: 8.9 KB
  • 大小: 10 KB
  • 大小: 16.9 KB
  • 大小: 13.8 KB
  • 大小: 19.1 KB
  • 大小: 11.7 KB
分享到:
评论

相关推荐

    数据库管理与应用 5.3.2使用外连接(OUTER JOIN)进行多表查询.pdf

    数据库管理与应用 5.3.2使用外连接(OUTER JOIN)进行多表查询.pdf 学习资料 复习资料 教学资源

    inner join-outer join-cross join查询方式总结

    表连接 内连接 外连接 交叉连接表连接 内连接 外连接 交叉连接表连接 内连接 外连接 交叉连接

    GBASE数据库-外连接和自连接.doc

    内连接操作的结果只输出两个...外连接分为左外连接(Left Outer Join)和右外连接(Right Outer Join)和完全外连接(Full Outer Join)。SQL标准规定外连接必须使用OUTER JOIN关键字,不存在类似于旧式内连接的语法。

    MySQL数据库:外连接.pptx

    ● 左外连接(LEFT OUTER JOIN): 结果表中除了匹配行外,还包括左表有的但右表中不匹配的行,对于这样的行,从右表被选择的列设置为NULL。 ● 右外连接(RIGHT OUTER JOIN): 结果表中除了匹配行外,还包括右表有...

    【SQL高级(三)】【SQL 连接(JOIN)】

    文章目录SQL 连接(JOIN)不同的 SQL JOINSQL INNER JOIN 关键字SQL LEFT JOIN 关键字SQL RIGHT JOIN 关键字SQL FULL OUTER JOIN 关键字 SQL 连接(JOIN) SQL join 用于把来自两个或多个表的行结合起来。 下图展示了 ...

    MySQL常见面试题(表连接类型,count(*),count(列),count(1)的区别,索引,存储引擎,锁,优化)

    左外连接:使用left outer join,表示即使左表存在未关联数据,也被查询出来。在left outer join左侧的表叫做左表,右侧的表叫做右表。(能够查询出关联数据和左表没有关联的数据,在左表的下方进行展示) 右外连接...

    VC 使用right outer join查询SQLServer数据库的例子.rar

    VC 使用right outer join查询SQLServer数据库的例子,查询结果显示在DATAGRID数据控件中,测试前请确保数据库连接已成功,且数据库非空。窗体界面效果如截图所示,注:测试时数据库连接失败,这是测试电脑的问题。

    right outer join查询,C#使用右外连接查询数据

    摘要:C#源码,数据库应用,数据库查询 使用右外连接查询数据,right outer join查询的C#源码实例,演示效果请看截图。

    数据库系统概论数据查询之连接查询.pdf

    外连接以指定表为连接主体,不满⾜连接条件的元组也输出 左外连接:以左边为主体,列出左边关系,Left outer JOIN 右外连接:以右边为主体,列出右边关系,Right outer JOIN 如想列出每个学⽣的基本情况和选课情况...

    Oracle 数据库连接查询SQL语句

    左连接 (left [outer] join) 左外连接就是将左表的所有数据分别于右表的每条数据进行连接组合,返回的结果除内连接的数据外,还有左表中不符合条件的数据,并在右表的相应列中填上null值。 SQL语句如下: select * ...

    关于数据库外连接和内连接和交叉连接

    一.外连接  1.left join ...右连接 right join 或 right outer join  SQL语句:select * from student right join course on student.ID=course.ID  右外连接包含right join右表所有行,如果左

    SQL语句多表查询

    一、外连接 1、左连接 left join 或 left outer join ... 3、完全外连接 full join 或 full outer join 二、内连接 join 或 inner join 三、交叉连接 cross join 四、两表关系为一对多,多对一或多对多时的连接语句

    Oracle中sql语句(+)符号代表连接的使用讲解

    oracle中sql语句(+)符号代表连接 (+)在=前边为右连接 (+)在=后边为左连接 SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b.* ...LEFT JOIN 或LEFT OUTER JOIN 列出左表中的所有行,若左表中某行

    数据库连接表查询

    数据库连接表查询 一、交叉连接(CROSS JOIN) 二、内连接(INNER JOIN) 三、外连接(OUTER JOIN)

    SQL多表连接查询、多表关联

    sql多表连接查询inner join, left join , right join ,full join ,cross join Posted on 2008-05-07 21:55 我开始懂了 阅读(21431) 评论(9) 编辑 收藏 inner join,full outer join,left join,right jion 内部连接 ...

    MySQL中基本的多表连接查询教程

    一、多表连接类型 1. 笛卡尔积(交叉连接) ...一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN  2. 内连接INNER JOIN 在MySQL中把I SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM table1 JOIN table2 SELE

    SQL多表连接查询实例分析(详细图文)

    1、左连接 left join 或 left outer joinSQL语句:select * from student left join course on student.ID=course.ID执行结果:左外连接包含left join左表所有行,如果左表中某行在右表没有匹配,则结果中对应行右...

    emp表和dept表左外连接1

    emp and deptno use left outer join and show result

    Oracle SQL连接查询总结.docx

    缺省情况下是inner join,开发中使用的left join和right join属于outer join,另外outer join还包括full join.下面我通过图标让大家认识它们的区别。 现有两张表,Table A 是左边的表。Table B 是右边的表。其各有四条...

    数据库内外连接讲解

    概述  1、内联接(典型的联接运算,...  1)LEFT JOIN或LEFT OUTER JOIN  左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关

Global site tag (gtag.js) - Google Analytics