数据库中视图的好处是什么

数据库中视图的好处是什么,第1张

● 简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的 *** 作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的 *** 作每次都指定全部的条件。 ● 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。 ● 逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。 视图也存在一些缺点,主要如下。 ● 性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也把它变成一个复杂的结合体,需要花费一定的时间。 ● 修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的。 所以,在定义数据库对象时,不能不加选择地来定义视图,应该权衡视图的优点和缺点,合理地定义视图。

什么情况下会用到视图?

比如说一个比较复杂的查询不想每次都写很多语句,就可以写个视图。下次查询的时候是需要使用select from视图名就可以了。

或者给特定用户开放某些表的读取权限,但要加一些行和列的限制,也可以写个视图。

视图的好处,可以主要分为四点: 

第一点: 使用视图,可以定制用户数据,聚焦特定的数据。

解释:

在实际过程中,公司有不同角色的工作人员。

以销售公司为例:, 采购人员,可以需要一些与其有关的数据,而与他无关的数据,对没有任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视图,以后他在查询数据时,只select      from   view_caigou   就可以了。

第二点:使用视图,可以简化数据 *** 作。 

解释:

在使用查询时,在很多时候要使用聚合函数,同时还要显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能会很长,如果这个动作频繁发生的话,则可以创建视图。以后要用的话,只需要select      from   view1就可以了。

第三点:使用视图,基表中的数据就有了一定的安全性

因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,故可以将基表中重要的字段信息,可以不通过视图给用户,视图是动态的数据的集合,数据是随着基表的更新而更新。同时,用户对视图,不可以随意的更改 

和删除,可以保证数据的安全性。 

第四点:可以合并分离的数据,创建分区视图

随着社会的发展,公司业务量不断的扩大,一个大公司,下属都设有很多的分公司,为了管理方便,需要统一表的结构,定期查看各公司业务情况,而分别看各个公司的数据很不方便,没有很好的可比性,如果将这些数据合并为一个表格里,就方便多了,这时就可以使用union关键字, 将各分公司的数据合并为一个视图。 

视图:是从一个或几个基本表(或视图)导出的虚拟表。

作用:

1、视图能够简化用户的 *** 作

2、视图使用户能以多钟角度看待同一数据

3、视图对重构数据库提供了一定程度的逻辑独立性

4、视图能够对机密数据提供安全保护

5、适当的利用视图可以更清晰的表达查询

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。 视图如同一张表一样,对表能够进行的一般 *** 作都可以应用于视图,例如查询,插入,修改,删除 *** 作等。简言之,视图和表的用法 *** 作基本相同,不同的是视图并不存储真实的数据。

比如我们创建了一个视图create view v1 as select from a ,那么我们可以对视图进行查询,select from v1,v1中并没有任何数据,在执行select from v1的时候相当于调用了生成视图的语句

select from a,此时select from v1等价于select from a

视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。

视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的 *** 作与对表的 *** 作一样,可以对其进行查询、修改(有一定的限制)、删除。

当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。

视图的作用

简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的 *** 作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的 *** 作每次指定全部的条件。

安全性。通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:

使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。

逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。

使用视图的好处是:

1、从安全的角度来说,视图的数据安全性更高,使用视图的用户不接触数据表,不知道表的结构,可以只授予用户视图的权限,而不具体指定使用表的权限,来保护基础数据的安全;

2、视图的家里和删除只影响视图本身,不影响对应的基本表;

3、实际应用过程中,不同的用户可能对不同的数据有不同的要求。使用视图可定制用户数据,聚焦特定的数据;

4、使用查询时,很多时候要使用聚合函数,同时还要显示其他字段的信息,或关联其他表,语句可能很长,如果这个动作频繁发生,可以创建视图来简化 *** 作;

5、通过使用视图,每个用户不必都定义和存储自己所需的数据,可以共享数据库中的数据,同样的数据只需要存储一次;

6、通过使用视图,可以重新格式化检索出的数据,并组织输出到其他应用中去;

7、视图提供的是对查询 *** 作的封装,本身不包含数据,所呈现的数据时根据视图定义从基础表中检索出来的,如果基础表的数据新增或删除,视图呈现的也是更新后的数据。试图定以后,编写完所需的查询,可以方便地重用该视图。

扩充:

视图是从一个、多个表或者视图中导出的表,包含一系列带有名称的数据列和若干条数据行。但视图不是数据库中真实的表,而是一张虚拟表,其结构和数据是建立在对数据中真实表的查询基础上的。存储在数据库中的查询 *** 作SQL语句定义了视图的内容,列数据和行数据来自于视图查询所引用的实际表,引用动图时动态生成这些数据。

创建视图的语法格式是:CREATE VIEW <视图名> AS <SELECT语句>。

你首先要理解什么是查询结果集

查询时实现数据库 *** 作的最主要方法,尽管从查询结果集看到的数据集合与打开的数据表看到的数据集合一样,但实质是完全不同的:

数据表是数据库中存放数据的实体对象,在数据表中看到的是数据的静态物理集合,是实际的数据源表。

查询只是针对数据源的 *** 作命令(程序),在查询结果中看到的是数据的动态逻辑集合,是执行命令对数据表 *** 作的结果,十一哥虚拟的数据表。

视图的概念

我们经常使用SELECT语句,尤其是比较复杂的查询语句,如果每次使用都要重复地输入代码是很麻烦的,如果将该语句保存为一个对象,每次使用时不需要输入代码,只给出对象的名字就能方便地使用,简化查询 *** 作。这个对象就是视图。

视图实际上就是给查询语句指定一个名字,将查询语句定义为一个独立的对象保存。

既然视图是由SELECT查询语句构成的,那么使用视图就可以直接得到SELECT语句的查询结果集,所以我们就可以这样为视图下一个定义:

视图:就是基于一个或多个数据表的动态数据集合,是一个逻辑上的虚拟数据表。

另一方面,视图又具有更强的功能:使用SELECT语句只能在结果集——动态逻辑虚拟表中查看数据,而使用视图不但可以查看数据,而且可以作为SQL语句的数据源,并且可以直接在视图中对数据表进行编辑修改删除——更新数据表中的数据。

以上就是关于数据库中视图的好处是什么全部的内容,包括:数据库中视图的好处是什么、sql 中在什么情况下使用视图,有什么好处、在sqlserver中建立视图有什么好处等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9677553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存