16 SQL语言——多(三)表联查

我们使用的是Oracle数据自带的用户scott下的练习表格:emp,dept,salgrade,bonus,为了实现三表查询,我们创建一个城市表。

--目标:查询员工的姓名,部门名,部门所在的城市 的员工并且薪资大于2000
     --创建城市表,添加数据
create table city(
       cid number(10) not null primary key,
       cname varchar2(100) not null,
       cdesc varchar2(500)

)
insert into city values('1','贵阳','林城');
insert into city values('2','大理','彩云之南');
insert into city values('3','北京','首都');
     --修改部门所在城市
select * from dept;
select * from bonus;
update dept set loc=1 where deptno=10;
update dept set loc=2 where deptno=20;
update dept set loc=3 where deptno=30;
update dept set loc=4 where deptno=40;
   --SQL92方式
select ename,dept.dname,dept.loc,city.cname 
from emp,dept,city 
where emp.deptno=dept.deptno and dept.loc = city.cid and sal>2000;
    --SQL99方式
select ename,d.dname,loc,cname
from emp e
join dept d
on e.deptno = d.deptno
join city c
on d.loc = c.cid
where sal>2000;

  

运行结果(两个都一样):

 

posted @ 2020-02-12 14:48  Scorpicat  阅读(188)  评论(0编辑  收藏  举报