继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

多表连接总结

莫笑君丑
关注TA
已关注
手记 1
粉丝 0
获赞 2

多表连接

  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); 



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP