当前位置:首页 » 操作系统 » 数据库中view

数据库中view

发布时间: 2022-05-16 19:22:18

❶ 试述关系数据库系统中视图的定义,引进view的概念有什么意义

试述关系数据库系统中视图(VIEW)的定义,引进VIEW的概念有什么优点。
答案 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。引进VIEW的优点有: (1)视图能够简化用户的操作。 (2)视图使用户能以多种角度看待同一数据。 (3)视图对重构数据库提供了一定程度的逻辑独立性。 (4)视图能够对机密数据提供安全保护。

❷ 什么是数据库视图

联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系
区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些sql语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。

❸ 在SQL中table与view的区别

区别本质就是View(视图)和Controller(控制器)的区别,其实用区别一词来形容不太恰当,用关系一词来形容会比较合理。
简单来说,可以把TableView理解成一个UI控件,这个控件有自己的一些属性,比如位置、高度、宽度、cell的数量等等,而TableViewController就是告诉TableView应该以什么样的形象出现在用户的面前 !

❹ 数据库中的视图有什么用,我们为什么要用视图

用来进行数据展示和分析。使用视图可以定制用户数据,聚焦特定的数据。

视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。

视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。

视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。

视图可以在以下几个方面使程序与数据独立:

如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。

如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。

如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。

如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。

❺ 数据库中的procere和view有什么区别请问

Procere就像是执行子查询表格,接受参数,你可以用where或者order by这样的参数经行进一步的定义
Procere被定义出来之后,非常的方便,下次如果需要调用相同的命令,就直接把procere名字打上去就能显示结果,通常为内部人员使用。
View本身就是显示一个表格,View可以显示出表格,但是VIEW本身并没有包括任何数据,view也不接受参数,所以其实view就是一个虚拟的表格,而不是实际的,所以在需要参数的时候,需要提前在建立view的时候定义好。VIEW一般是给外部非专业IT人员使用,因为你可以随意修改名称并限定输出的内容。

❻ 关于向数据库中的view插入数据

有的VIEW可以插入数据,数据会保存在相应的表中,看建立的语句。

补充:
各类数据库可能对VIEW的INSERT和UPDATE规定有区别,下面是MYSQL的规定:

关于可插入性(可用INSERT语句更新),如果它也满足关于视图列的下述额外要求,可更新的视图也是可插入的:

·不得有重复的视图列名称。

·视图必须包含没有默认值的基表中的所有列。

·视图列必须是简单的列引用而不是导出列。导出列不是简单的列引用,而是从表达式导出的。下面给出了一些导出列示例:

·3.14159
·col1+3
·UPPER(col2)
·col3/col4
·(subquery)
混合了简单列引用和导出列的视图是不可插入的,但是,如果仅更新非导出列,视图是可更新的。考虑下述视图:

CREATEVIEWvASSELECTcol1,1AScol2FROMt;
该视图是不可插入的,这是因为col2是从表达式导出的。但是,如果更新时不更新col2,它是可更新的。这类更新是允许的:

UPDATEvSETcol1=0;
下述更新是不允许的,原因在于,它试图更新导出列:

UPDATEvSETcol2=0;

❼ mysql中怎么查看view中的内容

在Mysql中,infomation_schema数据库下的views表里存储了所有视图的定义,可以通过views表查询视图的详细信息。

❽ 数据库中表与视图有什么联系与区别

区别
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来说是无效的,它是全表扫描的。

❾ 数据库中的view有何作用

视图是把现在有数据组合成新的形式展示出来,相当于一张虚拟的表,运行时用来呈现数据。 视图和存储过程的区别只能查。。。增删改是不行的 好处是 不用存储在数据库里。。

❿ 数据库的视图(VIEW)增加一个列是用UPDATE 还是INSERT 具体如何实现,请举个例子

您好,CREATE VIEW
创建一个虚拟表,该表以另一种方式表示一个或多个表中的数据。CREATE VIEW 必须是查询批处理中的第一条语句。

语法
CREATE VIEW [ < database_name > .] [ < owner > .] view_name [ ( column [ ,...n ] ) ]
[ WITH < view_attribute > [ ,...n ] ]
AS
select_statement
[ WITH CHECK OPTION ]

< view_attribute > ::=
{ ENCRYPTION | SCHEMABINDING | VIEW_METADATA }

参数
view_name

是视图的名称。视图名称必须符合标识符规则。可以选择是否指定视图所有者名称。

column

是视图中的列名。只有在下列情况下,才必须命名 CREATE VIEW 中的列:当列是从算术表达式、函数或常量派生的,两个或更多的列可能会具有相同的名称(通常是因为联接),视图中的某列被赋予了不同于派生来源列的名称。还可以在 SELECT 语句中指派列名。

如果未指定 column,则视图列将获得与 SELECT 语句中的列相同的名称。

说明 在视图的各列中,列名的权限在 CREATE VIEW 或 ALTER VIEW 语句间均适用,与基础数据源无关。例如,如果在 CREATE VIEW 语句中授予了 title_id 列上的权限,则 ALTER VIEW 语句可以将 title_id 列改名(例如改为 qty),但权限仍与使用 title_id 的视图上的权限相同。

n

是表示可以指定多列的占位符。

AS

是视图要执行的操作。

select_statement

是定义视图的 SELECT 语句。该语句可以使用多个表或其它视图。若要从创建视图的 SELECT 子句所引用的对象中选择,必须具有适当的权限。

视图不必是具体某个表的行和列的简单子集。可以用具有任意复杂性的 SELECT 子句,使用多个表或其它视图来创建视图。

在索引视图定义中,SELECT 语句必须是单个表的语句或带有可选聚合的多表 JOIN。

对于视图定义中的 SELECT 子句有几个限制。CREATE VIEW 语句不能:

包含 COMPUTE 或 COMPUTE BY 子句。

包含 ORDER BY 子句,除非在 SELECT 语句的选择列表中也有一个 TOP 子句。

包含 INTO 关键字。

引用临时表或表变量。
因为 select_statement 使用 SELECT 语句,所以在 FROM 子句中指定 <join_hint> 和 <table_hint> 提示是有效的。有关更多信息,请参见 FROM 和 SELECT。

在 select_statement 中可以使用函数。

select_statement 可使用多个由 UNION 或 UNION ALL 分隔的 SELECT 语句。

WITH CHECK OPTION

强制视图上执行的所有数据修改语句都必须符合由 select_statement 设置的准则。通过视图修改行时,WITH CHECK OPTION 可确保提交修改后,仍可通过视图看到修改的数据。

WITH ENCRYPTION

表示 SQL Server 加密包含 CREATE VIEW 语句文本的系统表列。使用 WITH ENCRYPTION 可防止将视图作为 SQL Server 复制的一部分发布。

SCHEMABINDING

将视图绑定到架构上。指定 SCHEMABINDING 时,select_statement 必须包含所引用的表、视图或用户定义函数的两部分名称 (owner.object)。

不能除去参与用架构绑定子句创建的视图中的表或视图,除非该视图已被除去或更改,不再具有架构绑定。否则,SQL Server 会产生错误。另外,如果对参与具有架构绑定的视图的表执行 ALTER TABLE 语句,而这些语句又会影响该架构绑定视图的定义,则这些语句将会失败。

VIEW_METADATA

指定为引用视图的查询请求浏览模式的元数据时,SQL Server 将向 DBLIB、ODBC 和 OLE DB API 返回有关视图的元数据信息,而不是返回基表或表。浏览模式的元数据是由 SQL Server 向客户端 DB-LIB、ODBC 和 OLE DB API 返回的附加元数据,它允许客户端 API 实现可更新的客户端游标。浏览模式的元数据包含有关结果集内的列所属的基表信息。

对于用 VIEW_METADATA 选项创建的视图,当描述结果集中视图内的列时,浏览模式的元数据返回与基表名相对的视图名。

当用 VIEW_METADATA 创建视图时,如果该视图具有 INSERT 或 UPDATE INSTEAD OF 触发器,则视图的所有列(timestamp 除外)都是可更新的。请参见本主题后面的"可更新视图"。

注释
只能在当前数据库中创建视图。视图最多可以引用 1,024 列。

通过视图进行查询时,Microsoft® SQL Server™ 将检查以确定语句中任意位置引用的所有数据库对象是否都存在,这些对象在语句的上下文中是否有效,以及数据修改语句是否没有违反任何数据完整性规则。如果检查失败,将返回错误信息。如果检查成功,则将操作转换成对基础表的操作。

如果某个视图依赖于已除去的表(或视图),则当有人试图使用该视图时,SQL Server 将产生错误信息。如果创建了新表或视图(该表的结构与以前的基表没有不同之处)以替换除去的表或视图,则视图将再次可用。如果新表或视图的结构发生更改,则必须除去并重新创建该视图。

热点内容
存储卡有两个分区该怎么合并 发布:2024-10-11 09:26:50 浏览:910
安卓私密文件怎么隐藏 发布:2024-10-11 09:24:35 浏览:925
同配置的汽油车和混动哪个贵 发布:2024-10-11 09:13:18 浏览:330
c语言程序设计案例教程答案 发布:2024-10-11 09:11:09 浏览:624
教学管理数据库设计 发布:2024-10-11 09:02:44 浏览:274
a站视频缓存不了 发布:2024-10-11 09:02:37 浏览:886
python文件名去掉后缀 发布:2024-10-11 08:57:59 浏览:614
公网ipftp访问 发布:2024-10-11 08:25:58 浏览:944
新款密码箱怎么改密码 发布:2024-10-11 08:25:15 浏览:980
静态ip访问不了xp服务器 发布:2024-10-11 08:19:23 浏览:293