数据库视图是什么表
1. 数据库的视图用来做什么的
视图
视图的基本概念:
视图是一个虚拟表,表是视图的基础,数据库不存放视图的对应数据,视图的对应数据存放在视图引用的表中。
视图的作用:
1.集中数据
2.简化复杂查询的结构,方便对数据的操作
3.对数据提供安全保护
4.便于组织数据导出
创建视图应该注意:
1.必须拥有创建视图的权限
2.只能在当前数据库中创建视图
3.一个视图最多引用1024列
4.视图名不能与表重名
5.视图中列的名称一般继承其基表的列的名称
6.可以将视图创建在其它视图上
7.不能在视图上创建全文索引
8.不能在临时表上创建视图,也不能创建临时视图
9.定义视图的查询语句不能包含order by和into的关键字
创建视图:
create view view_name
with encryption ——加密视图
as
select 语句
with check option ——所有在视图上执行的数据修改语句都必须符合定义视图的select语句中所设定的条件
重命名视图
sp_rename old_name,new_name
修改视图
Alter view view_name
as
select 语句
对于加密的和不加密的视图都可以通过此语句进行修改
删除视图
drop view view_name
查看定义视图的select语句
sp_helptext view_name
(加密视图不可查看)
(自己做的笔记,希望能帮到你)
2. 数据库“视图中”是什么意思
视图(View)是从一个或多个表(或视图)导出的表。视图与表(有时为与视图区别,也称表为基本表--Base Table)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。
视图作用比较广的,首先视图可以将不同表中的数据通过关联实现多表数据输出。
比如说,有一个类型表 uType,有字段tId,tName,有个产品表 uProct,有字段pId,pName,tId,此时你可以通过建立一张视图vProct将产品表和产品类型一起输出
SELECT p.pId AS 产品编号,p.pName AS 产品名称,t.tId AS 产品类型编号,t.tId AS 产品类型编号 。FROM uProct AS p INNER JOIN uType AS t ON p.tId = t.tId;
这样就可以在程序里使用
SELECT * FROM vProct 来做产品资料的查询了
它可以减少我们编码的工作量,也方便维护。
3. 什么叫数据库视图
数据视图是数据库里的一张虚表,是不存在的一张表。和表一样,视图包括数据列和数据行,这些数据列和行来源于所查询的表(此表称作视图的基表).用户通过视图来浏览自己感兴趣的部分数据,而数据的物理存放位置仍然在视图所张引用的基表中。
4. sql中视图与表的区别
sql中视图与表的区别为:性质不同、存储内容不同、操作不同。
一、性质不同
1、视图:视图不是一个独立的文件,是由一个或几个基本表导出形成的虚表。
2、表:表是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。
二、存储内容不同
1、视图:视图存储的内容是来自本地数据源或远程数据源的定义,不存放实际数据。
2、表:表存储的内容是本地数据源的数据。
三、操作不同
1、视图:操作者只可以对视图进行查操作,不能进行增删改操作。
2、表:操作者可以对表进行增删改查四种操作。
5. 数据库中表与视图有什么联系与区别
区别
1、视图是已经编译好的sql语句,而表不是;
2、视图没有实际的物理记录,而表有;
3、表是内容,视图是窗口;
4、表占用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能用创建的语句来修改;
5、表是内模式,试图是外模式;
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合,从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构;
7、表属于全局模式中的表,是实表,视图属于局部模式的表,是虚表;
8、视图的建立和删除只影响视图本身,不影响对应的基本表;
9、不能对视图进行update或者insert into操作。
联系
1、视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在;
2、一个视图可以对应一个基本表,也可以对应多个基本表;
3、视图是基本表的抽象和在逻辑意义上建立的新关系。
总结:
视图是一个子查询,性能肯定会比直接查询要低(尽管sql内部有优化),所以使用视图时有一个必须要注意的,就是不要嵌套使用查询,尤其是复杂查询。
视图有什么用
1、当一个查询需要频频的作为子查询使用时,视图可以简化代码,直接调用而不是每次都去重复写这个东西。
2、系统的数据库管理员需要给他人提供一张表的某两列数据,而不希望他可以看到其他任何数据,这时可以建一个只有这两列数据的视图,然后把视图公布给他。
性能损失解决方案
对视图的查询语句进行优化。
通常来说直接查询和查询视图是没有什么区别的(sql 本身会进行优化),除非是视图嵌套了视图,或者子查询很复杂要计算。
特别说明:
每次SELECT视图的时候,视图都会重新计算创建它的规则(sql算法),如果算法复杂,数据量大,就会比较慢,那样每次就很慢了。
而且,表的索引对于视图view来说是无效的,它是全表扫描的。
6. 数据库报表的视图有几种每种视图的功能是什么
1、关系视图:Oracle视图是作为数据库对象存在的,因此,创建之后也可以通过工具或数据字典来查看视图的相关信息。
2、内嵌视图:在from语句中的可以把表改成一个子查询,内嵌视图为子查询的一种,可以与数据表、视图一样作为查询语句的数据源存在,但在形式上有较大的区别,内嵌视图不必使用create view命令进行创建,因此,在数据字典中也无法获得相应信息。
内嵌视图的特点在于无须创建真正的数据库对象,而只是封装查询,因此会节约数据库资源,同时不会增加维护成本。但是内嵌视图不具有可复用性,因此当预期将在多处调用到同一查询定义时,还是应该使用关系视图。
3、对象视图:对象类型在数据库编程中有许多好处,但有时,应用程序已经开发完成。为了迎合对象类型而重建数据表是不现实的。对象视图正是解决这一问题的优秀策略。
对象视图创建之后,同样可以在数据字典中获得其相应信息。利用Oracle内置视图user_views可以获得对象视图相关信息。Oracle中的对象数据实际仍然以关系数据的形式存储。
但是,对象的特性,例如继承、封装等,都为开发人员提供了更加灵活的处理形式。同样,可以构造复杂的对象类型来封装复杂的多表查询。
4、物化视图:常用于数据库的容灾,不是传统意义上虚拟视图,是实体化视图,和表一样可以存储数据、查询数据。主备数据库数据同步通过物化视图实现,主备数据库通过data link连接,在主备数据库物化视图进行数据复制。当主数据库垮掉时,备数据库接管,实现容灾。
(6)数据库视图是什么表扩展阅读
视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。视图可以在以下几个方面使程序与数据独立:
1、如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。
2、如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。
3、如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。
4、如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。
7. 数据库中的视图表到底是啥是虚的干啥要创建和删除呀 ,有什么用呀。有表不就可以了吗
据我的理解,视图主要就是方便,你也不想每次都写一大堆查询的代码吧?具体的优点你可以看下面
视图有很多优点,主要表现在:
·视点集中
·简化操作
·定制数据
·合并分割数据
·安全性
1. 视点集中
视图集中即是使用户只关心它感兴趣的某些特定数据和他们所负责的特定任务。这样通过只允许用户看到视图中所定义的数据而不是视图引用表中的数据而提高了数据的安全性。
2. 简化操作
视图大大简化了用户对数据的操作。因为在定义视图时,若视图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。可见视图向用户隐藏了表与表之间的复杂的连接操作。
3. 定制数据
视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。因此,当有许多不同水平的用户共用同一数据库时,这显得极为重要。
4. 合并分割数据
在有些情况下,由于表中数据量太大,故在表的设计时常将表进行水平分割或垂直分割,但表的结构的变化却对应用程序产生不良的影响。如果使用视图就可以重新保持原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。
5. 安全性
视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。其它数据库或表既不可见也不可以访问。如果某一用户想要访问视图的结果集,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。
8. 数据库视图到底是什么东西
数据库视图的概念视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据.视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。