当前位置:首页 > 数据库 > Oracle

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 crossjoin 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


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐