1、首先为测试用户分配创建视图的权限(在oracle10g以前scott用户可以直接创建视图,oracle10 r2版本创建视图时需要给scott分配权限)
2、创建视图语法:create or replace view 视图名称 as select * from 表名。create or replace view test asselect t.empno,t.ename,t.job,t.sal ,t.deptno from emp t;
3、使用视图统计各个部门的总工资select t.deptno,sum(t.sal) from test t group by t.deptno order by t.deptno
4、创建复杂视图create or replace view test1 asselect d.deptno,d.dname,nvl(e.num,'0')num from dept d,(select t.deptno,count(*) num from emp t group by t.deptno)ewhere d.deptno=e.deptno(+);
5、有时候发现可以更改视图数据update test t set t.DEPTNO='30' where t.EMPNO='7566'。导致原表emp数据也发生变化 此时可以添加 with check option 限制修改视图创建条件
6、创建只读视图:在实际工作中视图中的数据一般是不能够修改的,此时可以在创建视图的时候 添加 with read only
7、总结:1.视图一般用于封装复杂的查询数据如来源多个表的关联数据,单个表一般用处不是很大。2.视图数据属于临时数据一般是不能直接修改的,对于单个表创建的视图可以添加with read only 防止真实数据被修改。3.视图如果是多表关联创建,如果想改视图数据可以使用替代触发器实现。