Heim  >  Artikel  >  Datenbank  >  Oracle视图基础详解与实例

Oracle视图基础详解与实例

WBOY
WBOYOriginal
2016-06-07 17:35:351136Durchsuche

视图是基于一张表或多张表或另外一个视图的逻辑表。视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储

摘要:本篇笔记记录关于视图的一些认识、从概念、优缺点到应用以及注意事项。 

一:概念 

视图是基于一张表或多张表或另外一个视图的逻辑表。视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储数据的基本结构。而视图只是一种定义,对应一个查询语句。视图的数据都来自于某些表,,这些表被称为基表。数据库中只在数据字典中存储对视图的定义。

二:优点 

1、为用户集中数据,简化用户的数据查询和处理。

2、屏蔽数据库的复杂性,用户不必了解数据库的复杂性。

3、简化用户权限的管理,只授予用户使用视图的权限。

4、可以提高数据访问的安全性,通过视图往往只可以访问数据库中表的特定部分,限制了用户访问表的全部行和列。

5、便于数据共享,多个用户不必都定义所需的数据。 

三:视图类别  1、简单视图

指基于单个表并且不包含函数或表达式的视图,在该视图上可以执行DML语句(即可执行增、删、改操作)。

2、复杂视图

指基于单个或者多个表或者包含函数、表达式或者分组数据的视图,在该视图上执行DML语句时必须要符合特定条件。注意:在定义复杂视图时必须为函数或表达式定义别名

3、连接视图

指基于多个表建立的视图,一般来说不会在该视图上执行INSERT、UPDATE、DELETE操作。

4、只读视图

指只允许进行SELECT操作的视图,在该视图时指定WITH READ ONLY选项。该视图上不能执行INSERT、UPDATE、DELETE操作。

5、check约束视图

WITH CHECK OPTION用于在视图上定义CHECK约束,即在该视图上执行INSERT或UPDATE操作时,数据必须符合查询结果. 

四:创建视图  1、基本语法

CREATE [OR REPLACE] VIEW  view_name  [(column_name1[,column_name2…
 AS
select_statement
[WITH CHECK OPTION]
[WITH READ ONLY]

2、参数说明

CREATE OR Repalce:用于创建和修改视图
WITH CHECK OPTION :用于创建限制数据访问的视图
WITH READ ONLY :用于创建只读视图

3、DML操作遵循的原则 

a)简单视图可以执行DML操作。

b)在视图出现下列情况时不可以通过视图修改基表数据或插入数据:

i、集合运算符(union,intersect,minus)

ii、DISTINCT关键字

iii、

v、子查询

vi、分组函数

vii、需要更新的列不是由“列表达式”定义的

vx、

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn