表连接 join和(+)、union和uion all

应用中的表的连接使用:

join和(+)

区别:Join系列连接的特点是有专门的连接对象和被连接对象,使用on设置专门的连接条件。
            (+)连接实质上是一种外连接Outer Join的现象,连接条件放置在where条件列表中,通过不同的位置来对应不同方向的结果。
            (+)连接的结果是将(+)号对面的数据表不符合记录的结果也输出出来。

1 INNER JOIN  内连接
内连接就类似与我们传统where的连接方式了,返回严格符合条件的数据列。

2 LEFT JOIN / LEFT OUTER JOIN   左连接
左连接left join是保证from子句中的数据表全部显示。

3 RIGHT JOIN / RIGHT OUTER JOIN 右连接
右连接right join是保证Join的数据表全部显示。

4 FULL JOIN   全连接
全连接是将两个数据表中符合连接条件或者不符合连接条件的全部列出。

5 CROSS JOIN  笛卡尔连接。
Cross Join是进行全匹配,两两之间进行笛卡尔积运算。


join和(+)连接实例:

内连接:
SELECT * FROM DEPT INNER JOIN EMP ON DEPT.DEPTNO = EMP.DEPTNO;
SELECT * FROM DEPT , EMP WHERE DEPT.DEPTNO = EMP.DEPTNO;

左外连接:
SELECT * FROM DEPT LEFT JOIN EMP ON DEPT.DEPTNO = EMP.DEPTNO;
SELECT * FROM DEPT , EMP WHERE DEPT.DEPTNO = EMP.DEPTNO(+);

右外连接:
SELECT * FROM DEPT RIGHT JOIN EMP ON DEPT.DEPTNO = EMP.DEPTNO;
SELECT * FROM DEPT , EMP WHERE DEPT.DEPTNO(+) = EMP.DEPTNO;

全连接:
SELECT * FROM DEPT FULL JOIN EMP ON DEPT.DEPTNO = EMP.DEPTNO;

笛卡尔连接:
SELECT * FROM DEPT CROSS JOIN EMP;


union和union all,Intersect和Minus的使用

union       对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
union all  对两个结果集进行并集操作, 包括重复行,  不进行排序;
intersect  对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
minus      对两个结果集进行差操作,   不包括重复行,同时进行默认规则的排序。

关于排序控制:
如果想使用排序时,order by子句必须写在最后一个结果集里,
排序时,必须使用第一个查询语句中的字段名、字段序号,并且其排序规则将改变操作后的排序结果.


select * from student where id < 4
union
select * from student where id > 2 and id < 6;

select * from student where id < 4
union all
select * from student where id > 2 and id < 6;

select job from dept1 intersect select job from dept2;

select job from dept1 minus select job from dept2;

备注:关于join和union的区别
如果你明白了两个连接的原理不难看出:
union 和join不一样,union这个运算子是将资料列合并,而join是将栏位合并。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24070945/viewspace-705563/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24070945/viewspace-705563/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值