数据表的连接有: 
1、内连接(自然连接): inner只有两个表相匹配的行才能在结果集中出现 
2、外连接: 包括 
(1)左外连接(左边的表不加限制) 
(2)右外连接(右边的表不加限制) 
(3)全外连接(左右两表都不加限制) 
3、自连接(连接发生在一张基表内)

select a.studentno, a.studentname, b.classname 
  from students a, classes b 
  where a.classid(+) = b.classid;

STUDENTNO STUDENTNAM CLASSNAME 
---------- ---------- ------------------------------ 
    1 A     一年级一班 
    2 B     一年级二班 
            一年级三班

以上语句是右连接: 
即"(+)"所在位置的另一侧为连接的方向,右连接说明等号右侧的所有 
记录均会被显示,无论其在左侧是否得到匹配。也就是说上例中,无 
论会不会出现某个班级没有一个学生的情况,这个班级的名字都会在 
查询结构中出现。

反之: 
select a.studentno, a.studentname, b.classname 
  from students a, classes b 
  where a.classid = b.classid(+);

STUDENTNO STUDENTNAM CLASSNAME 
---------- ---------- ------------------------------ 
    1 A     一年级一班 
    2 B     一年级二班 
    3 C

则是左连接,无论这个学生有没有一个能在一个班级中得到匹配的部门号, 
这个学生的记录都会被显示。

select a.studentno, a.studentname, b.classname 
  from students a, classes b 
  where a.classid = b.classid;

这个则是通常用到的内连接,显示两表都符合条件的记录 
总之, 
左连接显示左边全部的和右边与左边相同的 
右连接显示右边全部的和左边与右边相同的 
内连接是只显示满足条件的!

在Oracle PL-SQL中,左连接和右连接以如下方式来实现

查看如下语句:
SELECT emp_name, dept_name 
FORM Employee, Department
WHERE Employee.emp_deptid(+) = Department.deptid此SQL文使用了右连接,即“(+)”所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配,也就是说上例中无论会不会出现某个部门没有一个员工的情况,这个部门的名字都会在查询结果中出现。
反之:
SELECT emp_name, dept_name 
FORM Employee, Department
WHERE Employee.emp_deptid = Department.deptid(+)则是左连接,无论这个员工有没有一个能在Department表中得到匹配的部门号,这个员工的记录都会被显示.
总结
select a.aaa,b.bbb from a,b where a.ccc(+)=b.ccc
上面的语句执行完后,将完返回b中所有的记录,不论a.ccc能否与b.ccc匹配。-------------右连接,(+)在左边
select a.aaa,b.bbb from a,b where a.ccc=b.ccc(+)
上面的语句执行完后,将完返回a中所有的记录,不论a.ccc能否与b.ccc匹配。-------------左连接,(+)在右边
+)在哪一边,则返回另一边所有的记录。
 
在Oracle PL-SQL中,左连接和右连接可以用如下的方式实现:

  语句片断:

  SELECT emp_name, dept_name

  FORM Employee, Department

  WHERE Employee.emp_deptid(+) = Department.deptid此SQL文使用了右连接,即“(+)”所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配,也就是说上例中无论会不会出现某个部门没有一个员工的情况,这个部门的名字都会在查询结果中出现。

  相反的情况:

  SELECT emp_name, dept_name

  FORM Employee, Department

  WHERE Employee.emp_deptid = Department.deptid(+)则是左连接,无论这个员工有没有一个能在Department表中得到匹配的部门号,这个员工的记录都将被显示。

oracle 左右链接的更多相关文章

  1. 在64位SQL Server中创建Oracle的链接服务器

    当我们同时使用SQL Server和Oracle来存储数据时,经常会用到跨库查询.为了方便使用跨库查询,一个最好的办法就是通过创建链接服务器来实现.既可以在SQL Server中创建Oracle的链接 ...

  2. 在64位SQL Server中创建Oracle的链接服务器 Link Server

    有时候我们希望在一个sqlserver下访问另一个sqlserver数据库上的数据,或者访问其他oracle数据库上的数据,要想完成这些操作,我们首要的是创建数据库链接. 数据库链接能够让本地的一个s ...

  3. Oracle 数据库链接

    SQL> CREATE DATABASE LINK   mydblink 2    CONNECT TO   test   IDENTIFIED BY   test123 3    USING  ...

  4. ORACLE数据库链接

    在ORACLE里面,远程数据访问,像查询.更新等可以通过Database Link来实现.数据库连接需要在建立Database Link的两台机子上都运行Oracle Net(以前叫SQL*NET 和 ...

  5. oracle数据链接

    using System; using System.Collections.Generic; using System.Data; using System.Data.OracleClient; u ...

  6. Oracle 远程链接oracle数据库服务器的配置

    远程链接oracle数据库服务器的配置 by:授客 QQ:1033553122 原理: 一.Oracle客户端与服务器端的通讯机制 1.OracleNet协议 如下图所示,Oracle通过Oracle ...

  7. Oracle管理监控之oracle客户端链接服务器配置文档

    开始菜单--Oracle - OraClient10g_home1--配置和移植工具--Net Configuration Assistant 打开窗口如下: 选择 本地Net服务名配置 点 下一步 ...

  8. lamp中的Oracle数据库链接

    lamp一键安装包: https://lnmp.org/install.html 在CentOS 6.7 64位安装PHP的PDO_OCI扩展 Installing PDO_OCI extension ...

  9. oracle调整链接数

    50用户以下:8GB 混用,oracle 占据1GB~3GB内存,open_cursors:300,processes:10050-100用户:16GB 混用,oracle 占据3~4GB内存,ope ...

  10. Oracle 查看链接数、创建索引等的DDL语句

    select count(*),machine from v$session group by machine 今天打算将一个数据库的索引在另一个测试库上重新创建一遍,研究了一下. set pages ...

随机推荐

  1. SpringMVC同时支持多视图(JSP,Velocity,Freemarker等)的一种思路实现

    在基于SpringMVC的项目中有时需要同时使用多种视图格式,如jsp,velocity及freemarker等,通过不同的请求路径配置规则,映射到不同的视图文件.下面我提供一种思路,通过视图模板文件 ...

  2. css3 - 动态伪类

    动态伪类分为以下几种: 1. hover(经过) 2. active(点击后) 3. focus(聚焦) - input专用 4. visited(访问后) 使用:

  3. Web文件的ContentType类型大全

    ".*"="application/octet-stream"".001"="application/x-001"&qu ...

  4. 纯JS设置首页,增加收藏,获取URL參数,解决中文乱码

    雪影工作室版权全部,转载请注明[http://blog.csdn.net/lina791211] 1.前言 纯Javascript 设置首页,增加收藏. 2.设置首页 // 设置为主页 functio ...

  5. selector的button选中处理问题

    1.背景介绍 在做Android项目开发的时候,有时我们须要对button做一些特殊的处理,比方button点击的时候会有一个动画的效果,实际上就是几张图片在短时间的切换.再比方有时候我们须要对界面的 ...

  6. DDR 布线规则

    https://blog.csdn.net/cpf099/article/details/52038862 https://blog.csdn.net/cpf099/article/details/5 ...

  7. project 2013 激活 key 7YHNW-RVCQY-VBDB2-QX69Q-B96WK viso 66DNF-28W69-W4PPV-W3VYT-TJDBQ

    project 2013 激活 key :7YHNW-RVCQY-VBDB2-QX69Q-B96WK viso2013  激活 key:66DNF-28W69-W4PPV-W3VYT-TJDBQ 软件 ...

  8. Spring Boot + Spring Data JPA + PostgreSQL

    最近在用Java重写之前实习生用.netcore写的微信后台应用. 规定用Spring Boot框架,PostgreSQL数据库.之前一直习惯于基于XML的Spring app,也没用过Postgre ...

  9. datatables参数配置详解

    //@translator codepiano //@blog codepiano //@email codepiano.li@gmail.com //尝试着翻译了一下,难免有错误的地方,欢迎发邮件告 ...

  10. IOS8 通知中心(Notification Center)新特性

     本文转载至 http://blog.csdn.net/jinkaiouyang/article/details/30029441   ios手机apple通知中心notificationCenter ...