1,视图分为两种
第一种:可更新的视图
第二种:连接视图(由连接表的sql生成的视图)
2,视图的概念:
视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器。(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束)。
3,视图的存储
与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。
4,视图的作用:
通过视图可以设定允许用户访问的列和数据行,从而为表提供了额外的安全控制
视图中可以使用连接(join),用多个表中相关的列构成一个新的数据集。此视图就对用户隐
藏了数据来源于多个表的事实。
保存复杂查询
5,视图的工作机制:
视图的定义就是其使用的查询语句,Oracle 将这个定义以文本形式存储在数据字典中。当用户在 SQL 语句中引用了视图时,Oracle 将进行以下工作:
将引用了视图的语句与视图的定义语句整合为一个语句
在共享SQL 区解析整合后的语句
执行此语句
当现有的共享SQL 区中没有与整合后的语句一致时,Oracle 才会为此语句创建新的共享 SQL 区。因此,引用了视图的SQL 语句也能够利用已有的共享 SQL 区以达到节约内存和提高性能的目的。
6.可更新的连接视图
连接视图是指在一个视图的定义查询的from字句中引用了多个表或视图。而可更新的连接视图是指能够执行 UPDATE,INSERT,和 DELETE 操作的连接视图。为了保证视图是可更新的,其定义中不能包含以下语法结构:
集合操作符
DISTINCT 操作符
聚合函数或分析型函数
GROUP BY,ORDER BY,CONNECT BY,或 START WITH 字句
在 SELECT 之后的列表中使用集合表达式
在 SELECT 之后的列表中使用子查询
连接(join)(但是有例外情况)
对于不可更新的视图,可以利用 INSTEAD OF 触发器对其数据进行修改。
7,创建视图:
create or replace view view_scott_dept as
select * from dept;
commit;
8, 向视图中插入数据(也就是向视图的基表中插入数据)
insert into view_scott_dept values(3,'xxx','dddd');
commit;
9,删除视图中的数据(月就是删除视图基表中的数据)
delete from view_scott_dept where deptno = 3
分享到:
相关推荐
### Oracle视图创建详解 #### 一、前提条件与背景介绍 在Oracle数据库环境中,我们已经建立了两张表:`rt_issuesect` 和 `roadstate`。为了更好地管理和查询这两张表的数据,本教程将详细介绍如何利用Oracle的视图...
### Oracle视图、函数、过程、触发器自动编译脚本知识点详解 #### 一、背景与需求 在日常管理维护Oracle数据库服务器的过程中,我们经常会遇到需要修改视图(View)、表(Table)结构的情况。由于Oracle中的视图、...
因Oracle暂不支持对视图(View)的加密,在实际工作中有时需提供给第三方只读账户,为保护知识产权,可用文中所述方法防止第三方账户查看视图(View)中的SQL代码。
### Oracle 实现带参数视图 #### 背景与概念 在数据库设计与管理过程中,视图(View)作为一种虚拟表,对于简化查询、增强数据安全性和提供数据抽象具有重要作用。然而,标准的视图定义是静态的,无法根据不同的...
在C#中,迁移Oracle视图的步骤主要包括以下几个方面: 1. **建立数据库连接**:使用OracleConnection类创建连接字符串,并建立与源数据库和目标数据库的连接。连接字符串应包含数据库的服务器地址、服务名、用户名...
"Oracle 视图详解" Oracle 视图详解是指在 Oracle 数据库中创建的虚拟表,以便用户可以更方便地访问和操作数据库中的数据。视图的定义是一个基于查询的结果集,可以来自一个或多个实际表或视图,或者甚至来自其他...
Oracle 视图(View)是一种逻辑表,基于一个或多个实际表,它不占用物理空间,只存在逻辑定义。每次使用视图时,都是重新执行 SQL 语句。视图可以从一个或多个实际表中获得,这些表的数据存放在数据库中。那些用于...
标题“通过MySQL通过视图访问ORACLE中的表”意味着我们将探讨如何利用MySQL的视图功能,来间接访问和操作Oracle数据库中的数据。视图是一种虚拟表,它不实际存储数据,而是根据用户定义的SQL查询动态生成结果集。这...
Oracle 视图操作 Oracle 视图是基于一张表或多张表或另外一个视图的逻辑表,视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储数据的基本结构。而视图只是一种定义,对应一个查询语句。...
视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的...
本实验涵盖了 Oracle 中的视图概念、创建视图、显示视图的内容、从数据字典视图中选择视图的名字和文本、使用视图查询数据、创建带有条件的视图、显示视图的结构和内容、更新视图、创建复杂视图等内容,为读者提供了...
总的来说,Oracle视图是数据库设计和管理中非常实用的工具,通过合理利用视图,可以提高数据查询的效率,保护数据安全,并简化应用程序的开发和维护。在学习Oracle数据库的过程中,理解和掌握视图的用法至关重要。
下面将详细解释Oracle视图的各个方面。 1. 数据抽象:视图可以将复杂的数据结构简化为用户友好的形式,只展示他们需要看到的列和行。例如,一个视图可能只包含一个大型表的一部分列,或者合并来自多个表的相关信息...
Oracle 带参数视图实践 Oracle 数据库中的视图通常是不带参数的,但有时,我们需要使用带参数的视图来方便查询数据。下面将简要介绍 Oracle 带参数视图的实践。 一、问题描述 在实际应用中,我们遇到了一个问题...
Oracle 表字段或是视图字段添加备注方法 Oracle 是一个强大的关系数据库管理系统,提供了多种方式来添加备注信息到表字段或视图字段中。在本节中,我们将详细介绍如何使用 Oracle 的 Comment 机制来添加备注信息到...
Oracle 物化视图创建和使用 Oracle 物化视图是一种预先计算并保存表连接或聚集等耗时较多的操作的结果,以提高查询性能。物化视图对应用程序透明,不会影响应用程序的正确性和有效性,但需要占用存储空间。基表发生...
Oracle 创建视图为读 Oracle 创建视图为读是指在 Oracle 数据库中创建一个只读的视图,用于封装复杂的查询数据,使得数据更加简洁和易于管理。在本文中,我们将详细介绍如何创建 Oracle 视图、视图的应用场景、创建...
一、Oracle视图 1. 定义:视图是从一个或多个表中创建的虚拟表,它并不实际存储数据,而是存储查询语句。当用户查询视图时,Oracle会执行视图背后的SQL语句并返回结果。 2. 创建视图:使用CREATE VIEW语句,可以创建...
Oracle 创建视图是数据库管理中的一个重要概念,它允许用户创建基于已有表的逻辑视图,以便于数据查询和管理。视图并不实际存储数据,而是作为数据查询的窗口,其内容来自于一个或多个基础表。这使得视图成为数据...