二十八、oracle 视图

来源:互联网 发布:linux samba重启命令 编辑:程序博客网 时间:2024/05/17 03:48

一、介绍
视图是一张虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。(视图不是真实存在磁盘上的)

  

二、视图与表的区别
1、表需要占用磁盘空间,视图不需要
2、视图不能添加索引(所以查询速度略微慢点)
3、使用视图可以简化,复杂查询
4、视图的使用利于提高安全性
比如:不同用户查看不同视图

  

三、创建/修改视图
1、创建视图
create view 视图名 as select 语句 [with read only]
2、创建或修改视图
create or replace view 视图名 as select 语句 [with read only]
3、删除视图
drop view 视图名

4、查询所有视图

SELECT VIEW_NAME FROM USER_VIEWS

5、创建视图的视图

create or replace view 视图B as select from 视图A

注意:当表结构国语复杂,请使用视图吧!


创建视图避免用户修改数据,可以把视图设置成只读的属性read only 在创建视图语句后加上with read only即可。还可以通过check option创建约束。如果想要一个可以更新的视图,原表最好是单个表。如果视图中出现distinct,分组函数,rownumber等即视图不能更新。视图的修改没有修改选项,只会覆盖原有视图,因为视图没有数据,所以没有数据丢失的情况。给表增加约束和给视图增加约束是一样的。

1 0