oracle------视图

来源:互联网 发布:电视机网络机顶盒破解 编辑:程序博客网 时间:2024/05/01 22:55
视图
视图是一个虚拟表,其内容由查询定义。
但,视图并不在数据库中以存储额数据值集的形式存在,行和列的数据来自于定义视图查询所引用的表,并在引用视图时动态生成。
举2个例子
1.如果一张是id表,一张名称表,需要把id和名称显示在一起
操作的时候通过id,进行查询把2张表的需要字段关联到一张视图(虚拟表),这个虚拟表随着2张基础表的数据变化而变,它不是实际存在数据库中的。
create view myview as select emp.empno,emp.ename,dept.dname from emp ,dept where emp.deptno=dept.dept.no;
2.数据库管理员,给用户小明分配权限,只允许他查询emp表的工资小于1000的数据。之前讲的权限管理可以设置列的查询和操作权限,现在需要对行进行控制
制作一张视图,从表中选出需要的数据,授权的时候授权这个指定的视图,不授权表即可。
create view myview as select * from emp where sal<1000;
视图与表的区别
1.视图不占用磁盘空间,表需要占用
2.视图不能添加索引,查询速度要慢于表
3.视图可以简化复杂查询,比如多表联合关联查询
4.视图利于提高安全性,比如不同用户授权查看不同视图


创建视图
create view 视图名 as select语句 [with read only]
with read only 意思是只读,不能修改视图
创建或修改视图
create or replace view 视图名 as select语句 [with read only]


删除视图
drop view 视图名
0 0
原创粉丝点击