SG_007_CHAPTER 8

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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值