六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 44|回复: 0

Oracle 第八天 SQL各种连接查询

[复制链接]

升级  43%

101

主题

101

主题

101

主题

举人

Rank: 3Rank: 3

积分
329
 楼主| 发表于 2013-1-14 08:51:00 | 显示全部楼层 |阅读模式
以下均以oracle->scott账号自带的数据库为例(方括号里的东西表示有和没有效果是一样的)。

表内查询->自连接
查询所有经理所对应的雇员:

select manager.ename as manager,worker.ename as worker from emp manager,emp worker where manager.empno=worker.mgr;  

表间连接->内连接
查询部门名对应的雇员名:

select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno;

->左外连接
查询雇员名对应的部门名和没有部门对应的雇员名:

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

->右外连接
查询雇员名对应的部门名和没有雇员对应的部门名:
select e.ename,d.dname from emp e right join dept d on e.deptno=d.deptno;

->全连接
select e.ename,d.dname from emp e full join dept d on e.deptno=d.deptno;  

---------以上都是相等连接,还有一种不等连接
select e.ename,s.grade from emp e  join salgrade s on e.sal between s.losal and s.hisal;

*1、between...and...包括两个端点值。
   2、从可以加inner中可以看出,不等连接也可以有内连接、左外/右外/全连接。

本文参考:http://yangxiutian.iteye.com/blog/1666543
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表