您的位置:首页 > 数据库 > Oracle

Oracle学习记录2(多表查询)

2018-01-23 11:30 218 查看

1.内链接


等值链接

可以选择是否使用别名的方式来联表,以下是使用内连:

select * from emp , emtp where emp.no=emtp.no;



不等值链接

select * from emp , emtp where emp.no != emtp.no;


2.外链接


左外连接

当where.deptno=d.deptno不成立的时候,等号左边的表任然被包含在最后的结果中

写法:wheree.deptno=d.deptno(+)


右外连接

当wheree.deptno=d.deptno不成立的时候,等号右边的表任然被包含在最后的结果中

写法: wheree.deptno(+)=d.deptno





总结 以(+)对面的那张表最全,至于是左外,还是右外,其实不那么重要,一定要区分的话,以为前面的一张主表为,也就是from后面的那张表。一般是a.id=b.id(+)这个时候就是在+对面的这个 为主,叫左外链接。

(+)和使用left join的方式,网络上是说(+)比较快,但是很少有人使用。

3.自链接

通过表的别名,将同一张表视为两张表。

不适合操作大表,笛卡尔集大。一张表的count数就是笛卡尔集的数据条数。

4.层次查询

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: