一、介绍
视图是一张虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。(视图不是真实存在磁盘上的)
二、视图与表的区别
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等即视图不能更新。视图的修改没有修改选项,只会覆盖原有视图,因为视图没有数据,所以没有数据丢失的情况。给表增加约束和给视图增加约束是一样的。