视图有以下几方面的功能:
1。简化应用程序。
视图做为数据库中的一种实体,实际上存在的只是它的脚本,而它的内容并不真正的单独存在一份。一般,可以对复杂的应用程序从功能角度进行分析,
将可以与其它的应用程序共用的那一部分,分离出来。对这部分功能,视具体情况可做成不同的数据库实体(如过程),有些是可以做成视图的。这样,上层的应用
程序就可以从视图中取数据了。
还有,可以把对远地数据库的访问封装在视图中,使之对上层应用程序透明。
2。可以对 UNION 后的记录集排序。
直接对以下语句的结果排序,是不可能的(至少我不知道怎么直接排序)。
select a.id id from a
union
select b.id id from b;
所以把以上语句作成视图后,就可以了。设视图名为A_B:
select id from A_B order by id;
3。可以实现一定的权限控制。
可以根据需要,对表中的一部分内容做一个视图,以供一定的角色使用。可以对表中的一部分记录做一个视图(纵向),也可以对一个表中的一部分字段做一个视图(横向),或二者兼而有之。
暂时想了这么多,希望大家多多指正与补充。
--------------------------------------------------------------------
视图
是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在
数据库
中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,视图的作用
类
似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类
源数据
的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而您需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。
一、视图的作用
* 简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
* 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象
上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:
使用权限可被限制在基表的行的子集上。
使用权限可被限制在基表的列的子集上。
使用权限可被限制在基表的行和列的子集上。
使用权限可被限制在多个基表的连接所限定的行上。
使用权限可被限制在基表中的数据的统计汇总上。
使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。
* 逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。
二、视图的优点
(1)视图能简化用户的操作
(2)视图机制可以使用户以不同的方式查询同一数据
(3)视图对数据库重构
提供了一定程度的逻辑独立性
(4)视图可以对机密的数据提供安全保护
三、视图的安全性
视图的安全性可以防止未授权用户查看特定的行或列,是用户只能看到表中特定行的方法如下:
1 在表中增加一个标志用户名的列;
2 建立视图,是用户只能看到标有自己用户名的行;
3 把视图授权给其他用户。
四、逻辑数据独立性
视图可以使应用程序
和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。视图可以在以下几个方面使程序与数据独立:
1 如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。
2 如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。
3 如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。
4 如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。
五、视图的书写格式
CREATE VIEW <视图名>[(列名组)]
AS
<子查询>
DROP VIEW <索引名>
注意:视图可以和基本表一样被查询,但是利用视图进行数据增,删,改操作,会受到一定的限制。
(1)由两个以上的基本表导出的视图
(2)视图的字段来自字段表达式函数
(3)视图定义中有嵌套查询
(4)在一个不允许更新的视图上定义的视
分享到:
相关推荐
### 数据库视图的创建和使用 #### 一、数据库视图的概念与作用 数据库视图(View)是关系数据库中的一种重要抽象概念,它基于一个或多张表,并且可以根据需求进行定制化显示。简单来说,视图可以看作是从一个或多...
数据库视图是数据库管理系统中的一个重要概念,它提供了一种虚拟表的形式,允许用户从一个或多个实际表中选择和组织数据,以满足特定查询需求。视图并不存储数据,而是根据用户的需求动态生成数据,因此它是一种逻辑...
### 数据库视图详解 #### 一、视图的基本概念 **视图**是一种数据库对象,它可以被视为一张虚拟的表,其数据来源于一个或多个实际存在的表(称为基表)。视图本身并不存储数据,而是作为对数据的一种逻辑展现方式...
数据库视图作为一种重要的数据库对象,其在数据管理与查询中扮演着关键角色。视图可以被看作是存储在数据库中的SELECT查询结果的虚拟表,它并不实际存储数据,而是作为一个查询窗口,允许用户以不同的方式查看数据。...
数据库视图、存储过程与函数入门学习 内容循序渐进 很详细 很规范 从概念到示例 很适合初学者学习
通过上述步骤和代码示例,我们展示了如何在面向对象分析中通过类图来表示数据库视图,并实现这种映射关系。这种方法不仅有助于理解数据库视图的逻辑结构,还能够提高代码的可维护性和可扩展性。在实际应用中,应根据...
### Oracle数据库视图管理知识点详解 #### 一、Oracle数据库对象概述 在Oracle数据库中,数据对象主要包括表和视图,此外还有约束、序列、函数、存储过程、包、触发器等多种类型。这些数据对象构成了Oracle数据库...
以下将详细介绍创建MySQL数据库视图的过程以及相关的知识点。 1. **视图的基本概念** 视图是基于一个或多个表的预定义SQL查询。用户可以像操作真实的表一样对视图进行查询,但修改时需要注意视图的可更新性,不是...
本篇将详细讲解如何利用C#编程语言实现Oracle数据库视图的迁移。 首先,我们需要理解C#的基本语法和Oracle数据库的连接方式。C#提供了ADO.NET框架,通过System.Data.OracleClient或Oracle.ManagedDataAccess.Client...
数据库视图是数据库中一个非常重要的概念,它提供了一种虚拟表的概念,使得用户可以通过视图来简化复杂的查询操作,同时也可以提高数据的安全性。在不同的数据库管理系统中,视图的支持和实现方式可能会有所不同。...
【达梦数据库视图工具+驱动包】是一个专为达梦数据库系统设计的综合性工具集,其中包含了用于管理和操作达梦数据库的视图工具以及必要的驱动程序。达梦数据库是中国自主研发的一款高性能、高可靠性的关系型数据库...
数据库视图的创建与使用ppt,需要的童鞋课下载
【数据库视图】是数据库管理系统提供的一种抽象机制,它允许用户以特定的方式查看数据库中的数据,而无需直接访问底层的数据表。在实验中,我们通过两种方法创建了视图:视图创建向导和直接使用 SQL 语句。 1. 使用...
Ruby-ScenicRails的版本化数据库视图是一个强大的开发工具,尤其对于那些依赖数据库视图来简化复杂查询或提供特定业务逻辑的Rails应用而言。Scenic是Ruby on Rails框架的一个库,它允许开发者对数据库视图进行版本...
### 深入解析数据库视图 #### 一、数据库视图的概念与作用 数据库视图作为数据库领域中的一种重要工具,本质上是一个保存了SQL查询结果的虚拟表。虽然它本身并不存储数据,但能够根据定义好的SQL查询来动态生成...
第7章+sql数据库视图与索引.ppt第7章+sql数据库视图与索引.ppt第7章+sql数据库视图与索引.ppt第7章+sql数据库视图与索引.ppt
数据库视图和索引游标实验报告 一、数据库视图 数据库视图是一种虚拟表,基于 SQL 语句的结果集。它可以简化复杂的查询、提供数据安全和加强数据独立性等功能。本实验报告中,我们创建了一个名为 Einstein_student...
【数据库视图】是数据库管理系统中的一个重要概念,它提供了一种数据抽象的机制,使得用户可以按照特定的方式查看数据,而无需关注数据的实际存储结构。视图并不在数据库中存储实际的数据,而是由一个SQL查询定义,...
**IBExpert - FireBird数据库视图界面** IBExpert是一款强大的第三方数据库管理工具,专为FireBird数据库系统设计。FireBird是一种开源的关系型数据库管理系统,以其高效、可靠和跨平台的特性受到开发者的青睐。...
MySQL 数据库视图创建与管理 在 MySQL 中,视图(View)是一种虚拟表,它是基于一个或多个表的数据计算生成的结果集。视图可以简化复杂的查询、隐藏复杂的查询逻辑、提高数据安全性和简化数据管理。下面是创建 ...