您的位置:首页 > 数据库 > Oracle

Oracle中的视图

2013-07-17 20:26 162 查看


Oracle中的视图

视图(view)实际上是在一张或多张基表上建立的一个虚表,是预定义的查询。从视图中查询数据和从基本表中查询数据的方法是一样的。那么为什么出现视图又使用视图呢?原因有三:

1.

可以限制用户只能通过视图检索数据。可以对最终用户屏蔽建表时底层的基表。
2.

可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。
3.

限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样实现一定的安全性。

创建视图的语法如下:

CREATE [OR REPLACE]
[{FORCE|NOFORCE}] VIEW view_name
AS
SELECT查询
[WITH READ
ONLY]

其中的or replace是如果有视图已经存在,则替换视图。

Force和noforce是决定是否强制创建视图,force是在基表不存在时也可以创建视图的标志,noforce指如果基表不存在,则不能创建视图。Noforce是默认选项。

With read only是限制视图只能执行查询操作,不能进行增删改操作。可以理解为共享锁。

下面是一个小例子:

SQL> create or replace view teview

2 as

3 select * from
testss;

View created

这是创建了一个名为teview的视图,功能是查询表名为testss的内容,需要注意的是创建视图前要给用户授权,即grant create view to
admin(用户名)

,只有这样,才有权创建视图。然后可以使用一般的查询语句查询视图。如select * from
tvview,这样就可以使用视图了。个人觉得,视图的最大作用在于有一些复杂的多表联合查询就可以使用视图,查询出来一些混合的数据之后再根据条件找到满足要求的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: