oracle中inner left right full 的使用

–SQL99 多表查询

  • –笛卡尔积:使用cross join

    select * from emp cross join dept;
    –自然连接
    –使用select 内容 from 表名 natural join 表名
    –特点:1底层先笛卡尔积,然后按照所有的同名同值字段进行等值筛选。
    –问题1:如果想按照部分字段结果筛选怎么办?
    –问题2:如果字段名不同,但是值相同如何筛选?
    select * from emp natural join dept;
    –解决1:使用using关键字
    –作用1:使用指定的字段对联合查询的结果进行等值筛选
    –注意:指明的字段内容必须是两表同名同值字段
    –使用:select 内容 from 表名 inner join 表名 using(字段)
    select * from emp inner join dept using(deptno);
    –解决2:使用on关键字进行自定义连接条件筛选(等值筛选,不等值筛选)
    –注意:普通筛选条件使用where进行,不要使用on进行。
    –使用:select 内容 from 表名 inner join 表名 on 连接条件 where 普通筛选条件
    select * from emp e inner join dept d on e.deptno=d.deptno where sal>2000;
    –外连接

  • –左外连接

     select * from emp e left join dept d on e.deptno= d.deptno;
    
  • –右外连接

     select * from emp e right join dept d on e.deptno=d.deptno;
    
  • –全外连接

     select * from emp e full  join dept d on e.deptno=d.deptno;
    
  • –自连接

    –查询员工的领导
    select e1.ename ||’ 领导是 ’ || e2.ename from emp e1 inner join emp e2 on e1.mgr=e2.empno;
    select * from emp where mgr is null;
    在这里插入图片描述
    上图中有5个人没有上级领导。所以查询结果为
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值