中易网

oracle表之间有哪些连接方式

答案:2  悬赏:40  
解决时间 2021-02-13 15:04
oracle表之间有哪些连接方式
最佳答案
1相等连接
  通过两个表具有相同意义的列,可以建立相等连接条件。

  只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。

  例 查询员工信息以及对应的员工所在的部门信息;

  SELECt * FROM EMP,DEPT;

  SELECt * FROM EMP,DEPT

  WHERe EMP.DEPTNO = DEPT.DEPTNO;

  REM 显示工资超过2000的员工信息以及对应的员工的部门名称。
2外连接
  对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。除了显示匹配相等连接条件的信息之外,还显示无法匹配相等连接条件的某个表的信息。

  外连接采用(+)来识别。

  A) 左条件(+) = 右条件;

  代表除了显示匹配相等连接条件的信息之外,还显示右条件所在的表中无法匹配相等连接条件的信息。

  此时也称为"右外连接".另一种表示方法是:

  SELECt ... FROM 表1 RIGHT OUTER JOIN 表2 ON 连接条件

  B) 左条件 = 右条件(+);

  代表除了显示匹配相等连接条件的信息之外,还显示左条件所在的表中无法匹配相等连接条件的信息。

  此时也称为"左外连接".

  SELECt ... FROM 表1 LEFT OUTER JOIN 表2 ON 连接条件

  例 显示员工信息以及所对应的部门信息

  --无法显示没有部门的员工信息

  --无法显示没有员工的部门信息

  --SELECt * FROM EMP,DEPT WHERe EMP.DEPTNO = DEPT.DEPTNO;

  --直接做相等连接:

  SELECt * FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

  REM 显示员工信息以及所对应的部门信息,显示没有员工的部门信息

  --SELECt * FROM EMP,DEPT WHERe EMP.DEPTNO(+) = DEPT.DEPTNO;

  SELECt * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

  REM 显示员工信息以及所对应的部门信息,显示没有部门的员工信息

  --SELECt * FROM EMP,DEPT WHERe EMP.DEPTNO = DEPT.DEPTNO(+);

  SELECt * FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
3不等连接
  两个表中的相关的两列进行不等连接,比较符号一般为>,<,...,BETWEEN.. AND..

  REM SALGRADE

  --DESC SALGRADE;

  --SELECt * FROM SALGRADE;

  REM 显示员工的编号,姓名,工资,以及工资所对应的级别。

  SELECt EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP

  WHERe EMP.SAL BETWEEN LOSAL AND HISAL;

  REM 显示雇员的编号,姓名,工资,工资级别,所在部门的名称;

  SELECt EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE

  WHERe EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN LOSAL AND HISAL;

4自连接
  自连接是数据库中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。下面介绍一下自连接的方法:

  将原表复制一份作为另一个表,两表做笛卡儿相等连接。

  例:显示雇员的编号,名称,以及该雇员的经理名称

  SELECt WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER
  WHERe WORKER.MGR = MANAGER.EMPNO;
全部回答
sys,它是一个 dba用户名,具有最大的数据库操作权限,sys 必须以sysdba的身份登录; system,它也是一个 dba用户名,权限仅次于 sys用户,system 以正常身份登录,具有一般操作权限! dbsnmp 该用户负责oracle系统的智能代理(intelligent agent),该用户的缺省密码也是“dbsnmp”。它具有一个比较危险的系统权限" unlimited tablespace sysman oracle超级管理员
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
龙江银行属于中国人民银行吗
2013欧冠巴萨对巴黎的第二场比赛是啥时候
永康徐文韬西医诊所在什么地方啊,我要过去处
福州哪里得阿迪专卖店有打折啊
弥勒市电力小区西门在什么地方啊,我要过去处
我是不是得了食管癌啊
快递公司的账务怎么处理?借:现金 贷:主营
3至6岁小孩手毛腿毛长怎么会事
儿童乐园 电玩区的地面怎么做
输入框加js中for循环求5的阶乘
谁有好的存钱计划方案??
文兴公园自行车租赁点在哪里啊,我有事要去这
我的世界怎么把牲畜带进自己的围栏里?
去张掖旅游哪个旅行社好?跟团好还是自助游好
折文旁有哪些字
推荐资讯
表示很烦恼读完书之后干什么工作,家里人打算
太清镇林祥药店在什么地方啊,我要过去处理事
姓姜 田子辈的 男孩起名
好想去抓小精灵啊出自哪
从广东深圳到河北唐山顺丰快递需要多长时间
南通合兴工贸有限公司我想知道这个在什么地方
VHDL的软件工具有哪些
用碧云天的MTT试剂盒做,一点结晶都没有。PS
微博里能不能通过手机号和微博号搜索到网友
西安社区科普大学红光社区分校在什么地方啊,
迪丽热巴的电话号码是什么
桃仙中桥124怎么去啊,有知道地址的么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?