码迷,mamicode.com
首页 > 数据库 > 详细

多表查询SQL99

时间:2017-12-18 18:41:42      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:内连接   领导   name   指定字段   mgr   span   color   左外连接   nat   

【1】交叉连接  cross join

select * from emp,dept;                   ---sql92
select * from emp cross join dept;     ---sql99

【2】自然连接  natural join

自然连接会自动查找两张表中所有的相同的字段,进行等值连接

select * from emp e, dept d where e.deptno = d.deptno;  ---sql92
select * from emp e natural join dept d;

查询所有的员工名称,部门编号和部门名称

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

select e.ename, deptno, d.dname
from emp e natural join dept d;     ---sql99

【3】using:指定字段进行等值连接

select e.ename ,  deptno,  d.dname   --注意:deptno不区分是哪个表中的。
from emp e inner join dept d     --内连接:通常inner可以省略。
using(deptno);    使用using指定列名,不区分在哪个表中。

【4】on子句;用于指定连接的条件

--查询30号部门员工的编号,姓名和部门的名称
select e.empno,e.ename,d.dname
from emp e,dept d
where e.deptno = d.deptno;  ---sql92

select e.empno,e.ename,d.dname
from emp e join dept d 
on e.deptno = d.deptno
where d.deptno = 30;    ---sql99   


--查看10部门员工姓名,薪水 和薪水等级
select e.ename, e.sal, s.grade
from emp e join salgrade s
on e.sal between s.losal and s.hisal
where e.deptno = 10;     --sql99

【5】自连接

select e1.empno,e1.ename, e2.empno,e2.ename
from emp e1 join emp e2
on e1.mgr = e2.empno;   --sql99
---但是注意;少了KING这个用户,所以使用外连接。

【6】外连接

外连接有三种:左外连接,右外连接,全外连接

--[6] 外连接 [outer] join   outer 可以省略 与 inner一样!
--   左外连接 left  [outer] join 
--   右外连接 right [outer] join
--   全外连接 full  [outer] join

select  e1.empno,e1.ename,e2.empno,e2.ename
from emp e1 
left join emp e2  --e1 是可以看作员工表  e2可以看作领导表
on e1.mgr = e2.empno;

--查询所有部门的详细信息以及每个部门的平均工资,包含没有员工的部门
select d.*,round(nvl(avg(sal),0)) avg_sal
from emp e1 
right join dept d 
on e1.deptno = d.deptno
group by d.deptno,d.dname,d.loc
order by d.deptno;--按照部门编号排序

--查询部门30员工编号,姓名,部门名称,薪水,薪水等级
select e.empno,e.ename,d.dname,e.sal,s.grade
from emp e 
join dept d on e.deptno = d.deptno
join salgrade s on e.sal between s.losal and s.hisal
where d.deptno = 30;

 

 

 

  

  

多表查询SQL99

标签:内连接   领导   name   指定字段   mgr   span   color   左外连接   nat   

原文地址:http://www.cnblogs.com/superdrew/p/8057783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!