Oracle视图的创建和使用

视图

视图:视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。从数据库系统外部来看,视图就如同一张表一样。视图可以查询,但不可以新增、删除、修改。

创建视图

create view myview as select empno,ename,job,deptno from emp;

查看视图

select * from myview;

对原视图进行字段的修改

drop view myview; 
create view myview as select empno,ename,job,sal,deptno from emp;

便捷的对原视图的修改(这种方式在同义词里也可以使用

create or replace view myview as select empno,ename,job,deptno from emp;

视图的数据变动

create or replace view myview as select empno,ename,job,deptno from emp1 
where deptno = 20;

针对视图的创建条件进行修改

update myview set deptno=10 where empno=7369;

查看下这个视图的母表

select * from emp1; 
--发现对视图的修改反应到了母表上面,这样不好,进行视图的修改,
--添加一个 with check option 的命令;
create or replace view myview as select empno,ename,job,deptno from 
emp1 where deptno = 20 with check option;

再对视图的创建条件进行修改

update myview set deptno=10 where empno=7566; 
--发现不能再修改视图的创建条件了,那么,尝试下修改其他的数据
update myview set ename='刘明城' where empno=7566; 
--发现可以修改其他的数据,那么重新在末尾添加一行命令: with read only 
create or replace view myview as select empno,ename,job,deptno from 
emp1 where deptno = 20 with read only;

再尝试下能不能修改其他数据

update myview set ename='小小强' where empno=7566;

发现已经成功的不让我修改其他的数据,那么创建条件能不能改呢?

update myview set deptno = 10 where empno=7566;

删除视图

drop view myview;

视图主要用于查询 ,所以在创建视图的时候在最后面加上 with read only,这样如果是没有权限的人员就无法修改数据
例:

---创建只读视图 
create view v_empl as select nam
e,job from emp with read only;

视图的作用
第一:视图可以屏蔽掉一些敏感字段。
第二:保证总部和分部数据及时统一。

更多Oracle相关知识及惊喜猛戳主页哦,谢谢!

你可能感兴趣的