加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle 内连接、外连接、自然连接、交叉连接练习

发布时间:2020-12-12 13:42:01 所属栏目:百科 来源:网络整理
导读:oracle 内连接、外连接、自然连接、交叉连接练习 --查询员工信息select * from emp;--查询部门信息select * from dept;--需求:查询员工姓名、薪资和所在部门名称、部门编号--1.使用交叉连接(笛卡尔积)14条记录select ename,sal,dname,dept.deptno from em

oracle 内连接、外连接、自然连接、交叉连接练习

--查询员工信息
select * from emp;
--查询部门信息
select * from dept;

--需求:查询员工姓名、薪资和所在部门名称、部门编号

--1.使用交叉连接(笛卡尔积)14条记录
select ename,sal,dname,dept.deptno from emp,dept where emp.deptno=dept.deptno;
select ename,d.deptno from emp e,dept d where e.deptno=d.deptno;

--2.使用内连接(表1 inner join 表2 on 2个表连接条件)
select ename,d.deptno from emp e inner join dept d on e.deptno=d.deptno
select ename,d.deptno from emp e join dept d on e.deptno=d.deptno
select ename,deptno from emp e join dept d using(deptno)

--3.使用外连接(表1 outer join 表2 on 2个表连接条件)
--(1)左外连接  left   左表为基表(主),匹配表(从),主表的记录为主,从表没有匹配的记录以null值填充
select ename,d.deptno from emp e left outer join dept d on e.deptno=d.deptno
select ename,d.deptno from dept d left outer join emp e on e.deptno=d.deptno
select ename,dept d where e.deptno(+)=d.deptno
--(2)右外连接 right outer join 右表为基表,左表为匹配表
select ename,d.deptno from emp e right outer join dept d on e.deptno=d.deptno
--(3)全外连接full outer join,都可以当成主表,表1有的数据表2没有,表2就用null填充,表2有的数据表1,表1用null填充
select ename,d.deptno from emp e full outer join dept d on e.deptno=d.deptno

--4.自然连接(类似内连接) natural join,默认找寻2个表当中相同的字段
select ename,deptno from emp e natural join dept d 

--查询员工上司的名字,显示员工的姓名及其经理的姓名
--5.自连接
select e1.ename 员工姓名,e2.ename 经理姓名 from emp e1,emp e2 where e1.mgr=e2.empno

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读