`
y8820960
  • 浏览: 116416 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

数据库左右全连接总结

 
阅读更多

Oracle左右全连接总结
--建立测试数据 
create table a(id number); 
create table b(id number); 
insert into a values(1); 
insert into a values(2); 
insert into a values(3); 
insert into b values(1); 
insert into b values(2); 
insert into b values(4); 
commit; 
 
--左: 
--主流数据库通用的方法 

select * from a left join b on a.id=b.id; 
--Oracle特有的方法 
select * from a, b where a.id=b.id(+); 
 
        ID         ID 
---------- ---------- 
         1          1 
         2          2 
         3  
 
--右: 
--主流数据库通用的方法 

select * from a right join b on a.id=b.id; 
--Oracle特有的方法 
select * from a, b where a.id(+)=b.id; 
 
        ID         ID 
---------- ---------- 
         1          1 
         2          2 
                    4 
          
          
--内 
--主流数据库通用的方法 

select * from a join b on a.id=b.id; 
--where关联 
select * from a, b where a.id=b.id; 
 
        ID         ID 
---------- ---------- 
         1          1 
         2          2 
          
          
--全外 
--主流数据库通用的方法 

select * from a full join b on a.id=b.id; 
--Oracle特有的方法 
select * 
  from a, b 
where a.id = b.id(+) 
union 
select *  
  from a, b  
where a.id(+) = b.id; 
 
        ID         ID 
---------- ---------- 
         1          1 
         2          2 
         3  
                    4 
 
 
--完全,也叫交叉连接或者笛卡尔积 
--主流数据库通用的方法 

select * from a,b; 
--或者 
select * from a cross join b; 
 
        ID         ID 
---------- ---------- 
         1          1 
         1          2 
         1          4 
         2          1 
         2          2 
         2          4 
         3          1 
         3          2 
         3          4 
 
 
连接无非是这几个 
--内连接和where相同 
inner join 
--左向外连接,返回左边表所有符合条件的  
left join 
--右向外连接,返回右边表所有符合条件的 
right join 
--完整外部连接,左向外连接和右向外连接的合集 
full join 
--交叉连接,也称笛卡儿积。返回左表中的每一行与右表中所有行的组合 
cross join 
 
 
--补充: 
--左向外连接,返回左边表所有符合条件的, 
--注意这里没有第二个加号,会直接过滤掉数据,只显示符合条件的记录 

select *  
  from a, b 
where a.id = b.id(+) 
   and b.id = 2; 
    
        ID         ID 
---------- ---------- 
         2          2    
          
          
--左向外连接,返回左边表所有符合条件的 
--注意where上第二个加号,它的作用是修改右边表记录的显示,例如如果b.id(+) = 2,显示为2,否则显示null 

select * 
  from a, b 
where a.id = b.id(+) 
   and b.id(+) = 2; 
 
        ID         ID 
---------- ---------- 
         2          2 
         3  
         1    

==================转自   http://www.iteye.com/topic/462119================

分享到:
评论

相关推荐

    oracle数据库表左连接右连接全连接的认识

    全连接是指左右连接的全部表示,根据连接条件在任意一方表中出现无法匹配的情况,不满足条件的部分均用空值代替。例如: `SELECT e.empno, e.ename, d.dname FROM emp e FULL JOIN dept d ON e.deptno = d.deptno;`...

    oracle左右连接方法

    本文将详细介绍Oracle中的左连接(Left Join)、右连接(Right Join)、内连接(Inner Join)、全连接(Full Join)以及交叉连接(Cross Join)的方法,并通过示例来帮助理解每种连接的特点。 ### 一、左连接(Left...

    SQL关于内连接,外连接(左右连接)等的总结

    这在需要查看所有可能的组合,而不仅仅是匹配项时很有用,但并不是所有数据库系统都支持全外连接。 ```sql SELECT Employees.*, Departments.* FROM Employees FULL OUTER JOIN Departments ON Employees....

    21天速成SQL数据库

    - `FULL OUTER JOIN`: 全外联合,返回两个表的所有行。 - `SELF JOIN`: 自身联合,即表与自身进行联合操作。 ##### 第六天:子查询 - **目标**:掌握子查询的概念及其应用场景。 - **内容概述**: - 子查询可以...

    数据库6版讲稿第四章----中级SQL.ppt

    7. 全外连接(full outer join):包含内连接的所有元组,以及左右关系中所有不匹配的元组,缺失部分都用NULL填充。 8. 交叉连接(cross join):两个关系的笛卡尔积,即每个左关系的元组与右关系的每个元组组合。 9...

    关系型和非关系型数据库的区别? 关系型数据库的优点 容易理解,因为它采用了关系模型来组织数据 可以保持数据的一致性 数据更

    总结来说,理解数据库的基本原理,如关系型与非关系型的区别、MySQL语句的执行流程、索引的使用与优化,对于优化数据库性能和设计高效的数据存储方案至关重要。正确地利用这些知识,能够帮助我们构建更稳定、高效的...

    sql内连接、外连接

    4. **全连接(Full Join)**:全连接会返回左表和右表的所有记录,无论是否匹配。 #### 三、示例分析 假设我们有两个表`a`和`b`: - 表`a`包含字段`id`和`name`。 - 表`b`包含字段`id`、`bid`和`job`。 表`a`的...

    MySQL面试知识点总结1

    - **全外连接(FULL JOIN)**:返回左右两表的所有记录,如果某条记录在另一表中没有匹配项,则相应位置填充NULL。 3. **存储过程**: - **概念**:存储过程是一组预先编译的SQL语句,可以作为一个单元执行,提供...

    sql 面试题总结一

    - 查询优化:避免全表扫描,使用合适的连接类型,减少子查询,优化WHERE子句。 9. 触发器和存储函数: - 触发器:在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行的SQL代码。 - 存储函数:用户自定义的...

    收获,不止SQL优化--抓住SQL的本质

    11.2.5 三大表连接的特性总结 317 11.3 从案例学表连接优化要点 (三刀三斧四式走天下) 317 11.3.1 一次Nested Loops Join的优化全过程 318 11.3.2 一次Hash Join 的 优化全过程 320 11.3.3 一次 Merge Sort ...

    CI框架数据库查询之join用法分析

    总结一下,CI框架提供了一个易于使用的接口来进行数据库join操作,包括不同类型的join,以及处理多表连接。理解这些概念和用法对于有效利用CI框架进行数据查询至关重要。同时,确保对SQL的最佳实践有一定了解,比如...

    MYSQL-innodb性能优化学习总结[收集].pdf

    3. **max_connections**:定义了数据库的最大并发连接数,根据应用的并发需求调整。过高可能导致资源过度消耗,过低可能无法满足业务需求。 4. **max_user_connections**:限制单个用户可以建立的最大连接数,防止...

    基于SpringBoot+Vue音乐网站源码及实习报告

    "源码及资源在中有网盘链接,1个G左右"提示我们,除了源代码外,可能还包括数据库脚本、静态资源、依赖库等其他项目所需文件。 【标签解析】 "实习报告"标签明确了这个项目是一个实习生完成的,可能会包含对于初学...

    SQLServer语句小结(SQL语句使用整理)

    - FULL OUTER JOIN(全连接):返回左右两表的所有记录,如果某一方没有匹配的记录,则结果为NULL。 掌握这些基本的SQL语句和操作,能帮助我们有效地管理和操作SQL Server数据库,实现数据的存储、检索、更新和安全...

    收获不止SQL优化

    11.2.5 三大表连接的特性总结 317 11.3 从案例学表连接优化要点 (三刀三斧四式走天下) 317 11.3.1 一次Nested Loops Join的优化全过程 318 11.3.2 一次Hash Join 的 优化全过程 320 11.3.3 一次 Merge Sort ...

    SqlServer 表连接教程(问题解析)

    全连接则会返回所有左右两表的记录,无论是否有匹配,没有匹配的部分在结果集中都将用NULL填充。 自连接则是将一个表与自身进行连接,通常用于处理具有层级关系的数据,比如员工的上下级关系或类别之间的父子关系。...

    oracle14514

    全外连接会同时保留左右表中的所有记录,即使左右表之间没有匹配的记录也会被包含进来。 **示例代码**: ```sql SELECT * FROM EMP FULL OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO; ``` **示例解析**: 此SQL...

    mysql 左连接、右连接和内连接

    此外,MySQL并不支持全连接(FULL JOIN),这在其他数据库系统中可以用于返回左右两边表的所有记录,无论是否存在匹配项。 总结一下,左连接、右连接和内连接是MySQL中处理多表数据融合的重要手段。左连接以左表为...

Global site tag (gtag.js) - Google Analytics