oracle:视图,闪回归档

视图实际上是一个或多个表上的预查询,这些表称为基表。

从视图中检索信息与从表中检索信息的方法完全相同。通过某些视图,也可以对基表进行DML操作。

视图中并不存储着行,它们始终存储在表中。

视图的优点: 可以将复杂查询编写为视图,并授予用户访问视图的权限。这样就可以对用户屏蔽一定的复杂性。

限制用户只能访问视图,这样就可以阻止用户直接查询表。

限制某个视图只能访问基表中的某些行。这样可以对最终用户屏蔽部分行。

创建并使用视图

CREATE [OR REPLACE] [{FORCE | NOFORCE}] VIEW view_name

[ ( alias_name [,alias_name ...]) ] AS subquery

[ WITH {CHECK OPTION | READ ONLY}  CONSTRAINT constraint_name];

用户必须具有CREATE VIEW 特权才能创建视图。

简单视图:包含一个子查询,只从一个基表中检索数据。

复杂视图:包含一个子查询,且具有以下特点:1.从多个基表中检索数据。2.使用GROUP BY或DISTINCT子句对行分组。3.包含函数调用。

只能对简单视图执行DML操作,复杂视图不支持DML操作。

通过为视图添加CHECK OPTION 约束,可以指定对视图执行的DML操作必须满足子查询的条件。

CREATE VIEW cheap_products_view AS 

SELECT *

FROM products

WHERE price < 15

WITH CHECK OPTION CONSTRAINT cheap_products_view_price

通过为视图添加READ ONLY约束,可以指定该视图是只读的。不允许DML操作。

获取有关视图的信息

1.使用DESCRIBE命令

2.从user_view视图中获取(all_view)

从user_constraints视图中可以获得有关视图约束的信息。

修改视图

CREATE OR REPLACE可以彻底替换一个视图。

ALTER VIEW可以用来修改视图的约束。

ALTER VIEW cheap_products_view

DROP CONSTRAINT cheap_products_view_price;

删除视图

DROP VIEW cheap_products_view;


闪回数据归档

创建闪回数据归档并将它添加到表之后,就可以完成下列任务:

查看行在特定时间戳的情况

查看行在两个时间戳之间的情况

CREATE FLASHBACK ARCHIVE test_archive

TABLESPACE example

QUOTA 1 M

RETENTION 1 DAY;

修改现有表,将数据存储在归档中:

ALTER TABLE store.products FLASHBACK ARCHIVE test_archive;

随后对store.products表所做的修改都会记录在归档中。

查看5分钟以前:

SELECT product_id,name,price

FROM store.products

AS OF TIMESTAMP

(SYSTIMESTAMP - INTERVAL '5' MINUTE);

还可以查看特定时间戳,两个时间戳之间,某个时间戳和当前时间之间的情况。

停止对表的数据归档ALTER TABLE store.products NO FLASHBACK ARCHIVE

创建表时,可以为表指定一个闪回归档。

可以修改闪回归档

可以从闪回归档中清除给定时间戳之前的数据

可以清除闪回归档中的所有数据

可以删除闪回归档

发布了53 篇原创文章 · 获赞 16 · 访问量 12万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章