数据库对象 - 视图
视图中的数据是何时更新的?
视图
是一个虚拟表,是基于表或视图的逻辑表,它与真实的数据表一样具有行和列,但是它本身并不包含任何数据,它仅包含查询数据的脚本。
比如用户有一个非常复杂的查询 SQL 语句,为了经常使用这个 SQL 语句返回的结果,可以将它存储为视图,而 SQL 语句所查询的表称为基表,视图从基表中获取数据。
当基表的数据发生改变时,视图中的数据也会发生改变。
视图一个重要的作用就是限制用户对某些列的查询权限,提高了安全级别。
在创建视图时,只是将视图的定义信息保存到数据字典中,并不将实际的数据复制到任何地方,不占用任何实际的存储空间。
视图创建语法
CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW view
[(alias[, alias])...]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]];
例:
CREATE OR REPLACE FORCE EDITIONABLE VIEW "WHM"."V_ABC"
("cloumn", "cloumn", ...)
AS select column, column, ... FROM T_ABC
UNION ALL
select column, column, ... FROM T_DEF;
由于视图就是一个存储的查询,因此创建的步骤是先测试 SELECT 语句的正确性,然后将 SELECT 语句作为视图的 subquery 来创建整个视图。