为了账号安全,请及时绑定邮箱和手机立即绑定

多表连接总结

标签:
Oracle

多表连接

  1. 内连接

    a.相等连接(inner join)

      1)等值连接:通过相同的字段值连接起来的查询,不去除重复【列】,注意连接依据为null,null不与任何值匹配,包括null本身(即null != null)无比较性

          select * from emp inner join dept on emp.deptno= dept.deptno;

          select * from emp,dept where emp.deptno = dept.deptno

      2)不等连接: 使用比较运算符作为连接依据

          select * from emp inner join dept on emp.age >23;

          select * from emp,dept where emp.age >23;

    b.自然连接(natrual join):将两表【所有】列名相同的字段的进行比较,只保留一列属性列

          select * from emp natrual join dept;

  2. 外连接(outer join)

    a.左外连接(left outer join):以关键字左边表为主,查询右表无记录则null,左表数据为总数

          select * from emp left join dept on emp.deptno = dept.deptno;

    b.右外连接(right outer join):以关键字右表为主,查询左表无记录则为null,右表数据为总数

          select * from emp right join dept on emp.deptno = dept.deptno;

    c.全外连接(full outer join):左外连接和右外连接的并集

          select * from emp full join dept on emp.deptno = dept.deptno;

  3. 笛卡儿积(cross join):也称交叉连接,两表行记录一一匹配查询

    select * from dept cross join emp;

    select * from dept,emp;

  4. 自连接:既可以使用内连接也可以使用外连接

    select * from emp e1 left join emp e2 on e1.empno = e2.mrg

  5. 连接符(union/union all):将所有列名一致的所有表进行合并

    两者的区别只在于是否去除重复【行】

    select * from emp left join dept on dept.deptno = emp.deptno union (select * from emp rgint join dept on dept.deptno = emp.deptno); 



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消