什么情况下会用到视图?
比如说一个比较复杂的查询不想每次都写很多语句,就可以写个视图。下次查询的时候是需要使用select from视图名就可以了。
或者给特定用户开放某些表的读取权限,但要加一些行和列的限制,也可以写个视图。
视图的好处,可以主要分为四点: 第一点: 使用视图,可以定制用户数据,聚焦特定的数据。
解释:
在实际过程中,公司有不同角色的工作人员。
以销售公司为例:, 采购人员,可以需要一些与其有关的数据,而与他无关的数据,对没有任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视图,以后他在查询数据时,只select from view_caigou 就可以了。
第二点:使用视图,可以简化数据 *** 作。 解释:
在使用查询时,在很多时候要使用聚合函数,同时还要显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能会很长,如果这个动作频繁发生的话,则可以创建视图。以后要用的话,只需要select from view1就可以了。
第三点:使用视图,基表中的数据就有了一定的安全性
因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,故可以将基表中重要的字段信息,可以不通过视图给用户,视图是动态的数据的集合,数据是随着基表的更新而更新。同时,用户对视图,不可以随意的更改 和删除,可以保证数据的安全性。
第四点:可以合并分离的数据,创建分区视图
随着社会的发展,公司业务量不断的扩大,一个大公司,下属都设有很多的分公司,为了管理方便,需要统一表的结构,定期查看各公司业务情况,而分别看各个公司的数据很不方便,没有很好的可比性,如果将这些数据合并为一个表格里,就方便多了,这时就可以使用union关键字, 将各分公司的数据合并为一个视图。
提供逻辑独立性。
根据百度百科相关资料显示,视图对重构数据库提供了一定程度的逻辑独立性,隐藏了底层的表结构,简化了数据访问 *** 作,客户端不再需要知道底层表的结构及其之间的关系。
数据库是“按照数据结构来组织、存储和管理数据的仓库”。
我也是刚刚接触这方面的东西!也想问问视图到底是做什么用的!呵呵!
视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而您需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。
通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。
权限方面:
视图可以隐藏基表。
可以禁止所有用户访问数据库表,而要求用户只能通过视图 *** 作数据。这种方法可以保护用户和应用程序不受某些数据库修改的影响。例如,如果可以创建一个名为 "本月销售额 "的视图。在每月的第一天,可以相应地修改视图的定义。如果没有这个视图,用户每月都必须重新编写查询以选择相应月份的销售额。
将用户限定在表中的特定行上。
例如,只允许雇员看见工作跟踪表内记录其工作的行。
将用户限定在特定列上。
例如,对于那些不负责处理工资单的雇员,只允许他们看见雇员表中的姓名列、办公室列、工作电话列和部门列,而不能看见任何包含工资信息或个人信息的列。
将多个表中的列联接起来,使它们看起来象一个表。
聚合信息而非提供详细信息。
例如,显示一个列的和,或列的最大值和最小值。
我不知道你这三种是根据什么定义的,我学的时候是五种
1、单源表视图
视图的数据可以只取自一个基本表的部分行、列,这样的视图行列与基本表行列对应。这样定义的视图一般可以进行查询和更改数据 *** 作。
2、多源表视图
视图的数据可以来自多个表中,这样定义的视图一般只用于查询,不用于修改数据。
3、在已有视图上定义的新视图
可以在视图上再建立视图,这时作为数据源的视图必须是已经建立好的。
4、带表达式的视图
在定义基本表时,为减少数据库中的冗余数据,表中只存放基本数据,由基本数据经过各种计算派生出的数据一般是不存储的。但由于视图中的数据并不实际存储,所以定义视图时可以根据需要设置一些派生属性列,在这些派生属性列中保存经过计算的值。这些派生属性由于在基本表中并不实际存在,因此,也称它们为虚拟列。包含虚拟列的视图也称为带表达式的视图。
5、含分组统计信息的视图
含分组统计信息的视图是指定义视图的查询语句中含有GROUP BY子句,这样的视图只能用于查询,不能用于修改数据。
这些是我考数据库工程师时学的,如果你想例子我这有。
视图也叫虚表,存放的是解释后的sql语句,不保存实际数据,不占物理空间,即视图本身不包含任何数据,只包含映射到表的一个查询语句,当表数据发生变化时,视图也随之变化,
作用:方便查询,限制数据访问(视图本质是一条select语句,)当访问视图时,只能访问到select语句中涉及到的列,对其他列起到安全和保密的作用。
一般应该用在查询的方面,比如特定的查询页面,而且经常调用,就可以用视图提高效率。(个人看法啊)
具体应用场合应该要看业务需求了,我只知道这么多,
其他的就需要数据库方面的大神给你解答了。希望能帮到你。
视图的优点与缺点
在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短,视图具有如下的一些优点:
● 简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的 *** 作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的 *** 作每次都指定全部的条件。
● 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。
● 逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。
视图也存在一些缺点,主要如下。
● 性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也把它变成一个复杂的结合体,需要花费一定的时间。
● 修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的。
所以,在定义数据库对象时,不能不加选择地来定义视图,应该权衡视图的优点和缺点,合理地定义视图。
以上就是关于sql 中在什么情况下使用视图,有什么好处全部的内容,包括:sql 中在什么情况下使用视图,有什么好处、数据库视图的作用是什么、数据库视图的作用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)