问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle表之间有哪些连接方式

发布网友 发布时间:2022-04-27 03:51

我来回答

1个回答

热心网友 时间:2022-04-08 08:19

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;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
社保到期了还有时效吗 2023年河北退休人员认证时间 社保待遇资格认证有效期怎么认证 ...语法How long does it take you to get to school? 此句中“it... 海信电视初始设置后无信号 设置海信电视恢复出厂设置搜不到电视信号 海信一族电视大锅恢复设置没信号怎么? 如何用c程序读取txt文件? 成都膨胀螺丝型号 云南农信个人如何开通手机银行 精华液和肌底液的区别 精华液和精华乳先用哪一个 精华素和精华液有什么区别? 最最最感人的爱情故事 最好可以让人掉眼泪的 有的我+80分 多给几篇哦 关于爱情的感人故事 别太长 给我几篇感人的爱情故事,超感人的啊。 求些能感人的爱情故事 求让人感动的爱情故事,长一点的 感人的 不要俗套的 如何把某个文件夹改成可读写权限? 求几个非常非常感人爱情故事!要长一点的 华为读写权限在哪? 英语作文写一篇初中三年来对你影响最深的一件事,和步入高中的学习计划 Windows读写权限问题 我计划明年能进入高中翻译成英语 有没有感人的爱情故事? 移动硬盘怎么设置读写权限? 读取权限怎么设置 用磁感线表示磁场方向(用光线表示光也是)叫什么方法? 这个模型法和类比法有什么区别 毕业升入高中的我们有什么计划 英语作文带翻译 60词 磁通量是标量还是矢量?从定义看好像是标量,可是它的确有方向啊! C4D R21 渲染时有弹窗提示的问题要怎么关闭? C4Dr21更新界面在哪里 maxon cinema 4d r21是什么? oracle的执行计划中表的链接方式有几种?分别适用什么情况? c4dr21雕刻工具在哪里 jdbc连接oracle的方式?3种?哪3种 oracle中Normal,sysdba,sysoper三种连接方式程序员一般用哪种?_百度... c4dr21创建单一对象在哪我要做锁链,绘制单个之后需要创建单个对象,才能克隆,我的c4d是r21_百度问一问 oracle数据库3种主要表连接方式对比 C4D R21 如何导出带阴影的透明底图片? c4dr20和r25区别 delphi如何连接oracle数据库 C4DR21怎么没有OC界面了? oracle中Normal,sysdba,sysoper三种连接方式都是面向谁的? 求Maxon CINEMA 4D Mac版建模软件的下载地址! 怎么查询六个月之后失效的sql语句oracle r20版本的c4D怎么解锁 ORACLE三表连接 C4DR19到R42区别 c4dr20渲染动画的时候,渲染几百针以后是软件会提醒出完bug停止渲染