区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些sql语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
一 视图概念
视图是原始数据库数据的一种变换 是查看表中数据的另外一种方式 可以将视图看成是一个移动的窗口 通过它可以看到感兴趣的数据
视图是从一个或多个实际表中获得的 这些表的数据存放在数据库中 那些用于产生视图的表叫做该视图的基表 一个视图也可以从另一个视图中产生
视图的定义存在数据库中 与此定义相关的数据并没有再存一份于数据库中 通过视图看到的数据存放在基表中
视图看上去非常象数据库的物理表 对它的 *** 作同任何其它的表一样 当通过视图修改数据时 实际上是在改变基表中的数据 相反地 基表数据的改变也会自动反映在由基表产生的视图中 由于逻辑上的原因 有些视图可以修改对应的基表 有些则不能(仅仅能查询)
二 视图的作用
* 简单性 看到的就是需要的 视图不仅可以简化用户对数据的理解 也可以简化他们的 *** 作 那些被经常使用的查询可以被定义为视图 从而使得用户不必为以后的 *** 作每次指定全部的条件
* 安全性 通过视图用户只能查询和修改他们所能见到的数据 数据库中的其它数据则既看不见也取不到 数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上 但不能授权到数据库特定行和特定的列上 通过视图 用户可以被限制在数据的不同子集上
使用权限可被限制在基表的行的子集上
使用权限可被限制在基表的列的子集上
使用权限可被限制在基表的行和列的子集上
使用权限可被限制在多个基表的连接所限定的行上
使用权限可被限制在基表中的数据的统计汇总上
使用权限可被限制在另一视图的一个子集上 或是一些视图和基表合并后的子集上
* 逻辑数据独立性 视图可帮助用户屏蔽真实表结构变化带来的影响
三 视图的安全性
视图的安全性可以防止未授权用户查看特定的行或列 是用户只能看到表中特定行的方法如下
在表中增加一个标志用户名的列
建立视图 是用户只能看到标有自己用户名的行
把视图授权给其他用户
四 逻辑数据独立性
视图可以使应用程序和数据库表在一定程度上独立 如果没有视图 应用一定是建立在表上的 有了视图之后 程序可以建立在视图之上 从而程序与数据库表被视图分割开来 视图可以在以下几个方面使程序与数据独立
如果应用建立在数据库表上 当数据库表发生变化时 可以在表上建立视图 通过视图屏蔽表的变化 从而应用程序可以不动
如果应用建立在数据库表上 当应用发生变化时 可以在表上建立视图 通过视图屏蔽应用的变化 从而使数据库表不动
如果应用建立在视图上 当数据库表发生变化时 可以在表上修改视图 通过视图屏蔽表的变化 从而应用程序可以不动
lishixinzhi/Article/program/Oracle/201311/16872您好。
视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样。
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。
视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。
希望能够帮到您,谢谢,望采纳。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)