视图:视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。从数据库系统外部来看,视图就如同一张表一样。视图可以查询,但不可以新增、删除、修改。
创建视图
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相关知识及惊喜猛戳主页哦,谢谢!