oracle数据库(连接)

1.左连接、右连接
(+)代表连接方向,左连接,左边的表是主表;右连接,右边的表是主表;主表的数据可以完全查出来。
(+)=:放在等号左边的是右连接
=(+):放在等号右边的是左连接
但是不用刻意区分是左还是右,只是根据查询结果而定,如果发现有些需要的数据没有显示出来,就是用此符号更改连接方向
这种符号是oracle数据库独有的,其他数据库不能使用
查询雇员的姓名、职位和管理人员名字:
select e1.ename, e1.job, e2.ename mname from emp e1, emp e2 where e1.mgr= e2.empno;

使用左连接查询:
select e1.ename, e1.job, e2.ename mname from emp e1, emp e2 where e1.mgr = e2.empno(+);

使用右连接查询:
select e1.ename, e1.job, e2.ename mname from emp e1, emp e2 where e1.mgr (+)= e2.empno;

2.sql:1999语法(其他数据库可以使用)
1.交叉连接(cross join): 用于产生笛卡尔积
SELECT * FROM emp cross JOIN dept;

2.自然连接(natural join): 自动找到匹配的关联字段,消除笛卡尔积
SELECT * FROM emp natural join dept;

3.join ...using子句: 用户自己指定一个消除笛卡尔积的关联字段:
SELECT * FROM emp join dept USING(deptno);

4.join ...on子句: 用户自己指定一个可以消除笛卡尔积的关联条件,和where作用相似:
SELECT * FROM emp join dept on(emp.deptno=dept.deptno);

5.左外连接 left outer join ... on
SELECT * FROM emp left outer JOIN dept ON(emp.deptno= dept.deptno);

6.右外连接 right outer join ... on
SELECT * FROM emp RIGHT outer JOIN dept ON(emp.deptno= dept.deptno);

7. 全连接FULL OUTER JOIN .... on
select * from emp FULL OUTER JOIN dept on emp.deptno=dept.deptno

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值