博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
表的连接操作
阅读量:5262 次
发布时间:2019-06-14

本文共 1452 字,大约阅读时间需要 4 分钟。

在数据库中对于数据表的连接操作一共提供了两种:

内连接:也称等值连接在where中消除笛卡尔积的条件就是采用了内连接方式进行的

外连接: 内连接中只能显示等值满足的条件,不满足的条件则无法显示,如果希望显示特定表中的全部数据就要用要外连接

外连接分3种

   在Oracle中使用(+)表示连接

  1. 左外连接(左连接) 左关系属性=右关系属性(+) 表示左外连接      
  2. 右外连接(右连接) 左关系属性(+)=右关系属性 表示右外连接
  3. 全外连接(全连接)
  • 示例一 (内连接)

   将emp和dept表联合查询

 

SELECT * FROM EMP E,DEPT DWHERE E.DEPTNO=D.DEPTNO;

 

 

  • 示例二(右外连接)

增加右外连接显示部门表中40部门的信息

SELECT * FROM EMP E,DEPT DWHERE E.DEPTNO(+)=D.DEPTNO;
  • 示例三(左外连接)

 

首先在emp表中插入一条没有部门编号的记录

INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)VALUES(9999,'test','CLERK',7369,SYSDATE,800,100,NULL);

左外连接显示编号9999的信息

SELECT * FROM emp e,dept dWHERE e.deptno=d.deptno(+);

自身关联:

  • 示例四

查询出每个员工的编号,姓名及上级领导的编号和姓名

SELECT e.empno,e.ename,e.mgr emp表中领导编号,m.empno m表中的领导编号,m.enameFROM emp e,emp mWHERE e.mgr=m.empno(+);
  • 示例五

      查询在1981入职的全部员工的编号,姓名,入职日期(年-月-日显示),职位,领导姓名,员工月工资sal ,年总工资(sal+comm)*12,工资等级,部门编号,部门名称,部门位置,并县且要求这些员工的月工资在1500~3500之间,将最后的结果按年总工资降序排序,有果年工资相等,按入职时间升序排序

SELECT e.empno,e.ename,to_char(e.hiredate,'yyyy-mm-dd') 入职日期,e.job,e.sal 月基本工资,(e.sal+NVL(e.comm,0))*12 yearsal,m.ename 领导姓名,DECODE(s.grade,1,'E等工资',                2,'D等工资',                3,'C等工资',                4,'B等工资',                5,'A等工资') 工资等级,d.deptno,d.dname,d.locFROM emp e,emp m,salgrade s,dept dWHERE to_char(e.hiredate,'yyyy')='1981'    AND e.mgr=m.empno(+)    AND e.sal BETWEEN s.losal AND s.hisal    AND e.deptno=d.deptno(+)    AND e.sal BETWEEN 1500 AND 3500ORDER BY yearsal,e.hiredate ASC;

转载于:https://www.cnblogs.com/Soprano/p/10659004.html

你可能感兴趣的文章
009.栈实现队列
查看>>
A-Softmax的总结及与L-Softmax的对比——SphereFace
查看>>
关于软件盘覆盖住布局
查看>>
Unity3D 控制物体移动、旋转、缩放
查看>>
UVa 11059 最大乘积
查看>>
UVa 12545 比特变换器
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
10个著名的思想实验1
查看>>
composer 报 zlib_decode(): data error
查看>>
linux下WPS的使用
查看>>
Web Api 利用 cors 实现跨域
查看>>
hdu 3938 并查集
查看>>
instanceof
查看>>
BZOJ 题目1036: [ZJOI2008]树的统计Count(Link Cut Tree,改动点权求两个最大值和最大值)...
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
2015/8/4 告别飞思卡尔,抛下包袱上路
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>