sql 多表关联

普通的连接:

select e.empno, e.ename, d.deptno, d.dname

  from emp e, dept d

 where e.deptno = d.deptno;

在上述sql语句中先执行 from 后执行select和where  如果使用了别名的话以后引用表都要使用别名不然会报错  别名最长为30个字符 (此连接会出现一个笛卡尔乘积,如果两个表很大,那么乘积之后的另一个表会更大,占内存)

内连接

select e.empno, e.ename, d.deptno, d.dname

  from emp e

  join dept d

   on e.deptno = d.deptno

如果使用join操作 会优先判断 是否符合 join 后所接on的条件  使生成结果不会太大

左外连接可以使某一张表或两张表的数据完全显示出来

left join 和right join还可以用(+)来代替,(+)应放在缺少相应信息的一边,左连接的主表是join左边的表 为主表  内容会全部显示

select e.empno, e.ename, d.deptno, d.dname from emp e left join dept d on e.deptno = d.deptno ; 

左外链接的加号写法:

select e.empno, e.ename, d.deptno, d.dname from emp e, dept d where e.deptno = d.deptno(+);

右连接的主表是join右边的表 为主表  内容会全部显示

select e.empno, e.ename, d.deptno, d.dname from emp e right join dept d on e.deptno = d.deptno ;

右外链接的加号写法

select e.empno, e.ename, d.deptno, d.dname from emp e, dept d where e.deptno(+) = d.deptno 

完全外连接:(个人理解)

相当于做左连和右连后去重值

select e.empno, e.ename, d.deptno, d.dname from emp e full join dept d on e.deptno = d.deptno ; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值