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

oracle简单创建视图

2012-12-09 02:19 232 查看
1.平均薪水的等级最低的部门的部门名称:

select dname from
(
select avg_sal, deptno, grade from (select avg(sal) avg_sal,deptno from emp group by deptno)
join salgrade on avg_sal between salgrade.losal and salgrade.hisal
) t1
join dept on t1.deptno=dept.deptno
where t1.grade=
(
select min(grade) from
(
select avg_sal, deptno, grade from (select avg(sal) avg_sal,deptno from emp group by deptno)
join salgrade on avg_sal between salgrade.losal and salgrade.hisal
)
)


对于比较繁琐的select语句,可以通过建立一个视图作为一张表,来简化sql语句,是语句的可读性更强一些:

2.创建视图:
create view v$_dept_avg_sal_info as
select avg_sal, deptno, grade from (select avg(sal) avg_sal,deptno from emp group by deptno)
join salgrade on avg_sal between salgrade.losal and salgrade.hisal

(解释:

   create view 固定语句;

    v$_dept_avg_sal_info 为视图名称;

   as 固定语句;

   select avg_sal, deptno, grade from (select avg(sal) avg_sal,deptno from emp group by deptno)
   join salgrade on avg_sal between salgrade.losal and salgrade.hisal 要创建视图的sql数据



3.执行--》视图创建好了,之后上面比较繁琐的sql文可以写成如下的样子了:

select dname, t1.deptno, grade, avg_sal from
v$_dept_avg_sal_info t1
join dept on (t1.deptno=dept.deptno)
where t1.grade=
(
select min(grade) from v$_dept_avg_sal_info
)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: