oracle 4 : 连接查询

连接查询: join

(1)等值连接: 通常用主外键连接

(2)非等值连接

     例

--统计每个人姓名。部门名,薪资,薪资级别
select ename,d.dname,e.sal,s.grade
from emp e,dept d,salgrade s
where e.sal between s.losal and s.hisal
and e.deptno = d.deptno

(3)内部连接 关键字 inner join on 想当于where

select *
from emp e
inner join dept d
on d.deptno = e.deptno

(4)外部连接   左右连

  左连接:left join 以左边表为主表

    右连接:

  全外连接 :把表中所有数据都显示出来,有关联的数据,使用关联条件拼接,没有数据的用null 填充  关键字: full outer join

(5)自身连接

  

--自身连接  查询员工的上级领导
select e1.ename,e1.job,e2.ename from emp e1,emp e2
where e1.mgr = e2.empno

(6)交叉连接,产生笛卡尔积

  

--交叉连接
select * from emp cross join dept

(6)自然连接  关键字 natural join

  根据同名列进行自动连接

  要求同名列的数据类型必须相同,长度必须相同,主外键必须一致

  相当于没有条件的等值连接

--自然连接
select * from emp 
natural join dept

(7)联合查询: 多个投影结果合并在一起  关键字 union all

  要求进行查询的结果的列数必须相同:

  对应的列的数据类型必须相同,长度口蹄疫不同

  union all 全部显示

  union 自动去除重复数据  

  

--联合查询
select empno, ename
from emp
union all
select deptno,dname from dept

去重关键字: distinct:

--查询都有哪些部门有员工,员工在哪些部门里
select distinct deptno from emp
原文地址:https://www.cnblogs.com/miaomeng/p/8890454.html