Managing Views:
Creating and Modifying Views:
Create view view_name AS
Select column1,column2
From table
Where condition
Using Defined Column Names:
Create view view_name (column1,column2,…..)
AS select xxxx
From table
Where condition.
如果建立一个视图是使用select *的话,如果之后修改主表的话,必须重新建立视图。
Creating Views with Errors:
建立视图的时候,使用FORCE参数。(NO FORCE是默认的)
Create force view view_name AS
Select *
From table1
即使没有table1,视图照样建立。但是进去视图的时候,会出错。
Creating Read-Only Views:
Create view view_name AS
Select column1,column2
From table
Where condition
WITH READ ONLY
Creating Constraints on Views:
只允许Primary key, foreign key, unique key
Modifying Views:
改变视图的definition,使用CREATE VIEW OR REPLACE。
ALTER VIEW 用来compile一个非法的view,或者添加,删除约束。
Changing a View’s Definition:
如果使用create view or replace,而不是使用drop 和re-create视图,那么被赋予在视图上的权限被保留。
Recompiling a View:
当主表被修改后,视图变为不合法。Oracle 自动recompile视图,当视图被access时。
也可以使用ALTER VIEW显视得recompile视图。
当视图被recompile后,所有依赖视图的对象都变为invalid。
Dropping a View:
drop视图,视图的定义从数据字典中删除,赋予视图上的权限也被drop。依赖于视图的其他视图和存储过程都变为invalid。
Drop VIEW test_view
Using Views:
对视图的dml操作都影响到基本表,
Inserting, Updating, and Deleting Data through Views:
可以对视图执行dml语句,只有当视图没有如下的定义:
DISTINCT
GROUP BY
START WITH
CONNECT BY
ROWNUM
UNION, UNION ALL , INTERSECT , MINUS
Subquery in the SELECT clause
聚合函数
WITH CHECK OPTION:
当通过某个conditon从基本表中建立了视图,如果此时向视图插入一个违反condition的数据,照样可以正常。当建立视图的时候加上WITH CHECK OPTION参数,此时再向视图插入一个违反condition的数据,会出错。
Using Join Views:
多表链接形成视图。其中一个表为key-preserved,因为这个表的主键,在视图中也是主键。另外的表不是key-preserved。
只能通过视图,update key-preserved表。如果视图定义为WITH CHECK OPTION, 就不能update。
通过DML只能,通过视图只能同时对一个表进行修改。
Viewing Allowable DML Operations:
可以通过查询 USER_UPDATABLE_COLUMNS
ALL_UPDATABLE_COLUMNS
DBA_UPDATABLE_COLUMNS
来确定哪些视图是否允许updata inserte delete操作。
Using Inline Views:
放在from 语句中。
Order by 不能出现在子查询中。Inline view中可以有order by。
Performing Top-‘N’ Analysis:
Select *
From table
Where rownum<=10
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11997930/viewspace-1028076/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11997930/viewspace-1028076/