导航:首页 > 编程大全 > 数据库中的view

数据库中的view

发布时间:2022-12-06 04:15:51

⑴ 什么叫基本表什么是视图二者的区别和联系是什么

基本表是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。数据在表中式按行和列的格式组织排列的。

视图是计算机数据库中的一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。

基本表、视图区别为:存在不同、存储内容不同、操作不同。视图是由一个或几个基本表导出形成的虚表。

一、存在不同

1、基本表:基本表是本身独立存在的表。

2、视图:视图本身不存在独立存储在数据库中,是一个虚表。

二、存储内容不同

1、基本表:基本表存储的内容是实际的数据。

2、视图:视图存储的内容只有存储定义,不存放实际数据。

三、操作不同

1、基本表:操作者可以对基本表进行增删改查四种操作。

2、视图:操作者只可以对视图进行查操作,不能进行增删改操作。

参考资料来源:

网络——表

网络——视图

⑵ 数据库的视图(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 将产生错误信息。如果创建了新表或视图(该表的结构与以前的基表没有不同之处)以替换除去的表或视图,则视图将再次可用。如果新表或视图的结构发生更改,则必须除去并重新创建该视图。

⑶ SQL语言中的“视图(View) ”对应于数据库三级模式结构中的( )。

外模式 外模式是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是某一应用有关的数据的逻辑表示,外模式是保证数据库安全性的一个有力支持,通过视图每个用户只能看见和访问所对应的外模式中的数据,而数据库中的其余数据是不可见的

⑷ 数据库中的view有何作用

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

⑸ 数据库中的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;

⑺ oracle数据库的view中能添加数据吗

不能添加数据。
不管是oracle还是sql server,view只是个视图,是虚拟存在的,并没有实际的对应物件,所以无法对view的资料进行修改。
只能通过view寻找到对应的table,再针对table进行数据的操作,
对table进行数据操作后,结果会反应到调用该table的view中。

⑻ sql server中table和view区别

zzhd7
回答的很正确了,table
是存储数据的表,
我们经常用sql语句如;
select
姓名,性别
from
学生表

学生这个table进行查询,这是个简单查询,但是当我们要将
table1,table2,table3
,table4
..........好多个表进行多表查询的时候,我们不想每次都写一连窜的连接语句我们想让数据库记住这个复杂的语句要让数据库将这复杂的语句编译到数据库缓存中(速度更快)!!或者我们还不想让程序员知道这个复杂的查询涉及到了table1,table2,table3
,table4
.........这么多表,这时我们就可以建立一个view
像程序员提供view而不是sql。其实这个view就是一个起了名字的查询语句,view是会被数据库实例放入缓存预先编译的!他就是一个虚拟的表!!!
ok
了!!!不知道我说的清楚不清楚?

阅读全文

与数据库中的view相关的资料

热点内容
电信大数据外呼 浏览:112
linux001源码 浏览:61
什么视频可以用网站 浏览:642
徽商银行app如何交社保 浏览:428
linux文件缓存 浏览:11
南宁广科网络技术有限责任公司 浏览:791
下载历史旧版本手机支付 浏览:563
tomcat编译后的文件 浏览:387
升级win10前要不要安装更新 浏览:481
广告联盟系统代码 浏览:959
口袋网app 浏览:312
linux的ne 浏览:233
关闭iphone6健康 浏览:468
中信银行网银密码 浏览:157
iphone支持5gwifi吗 浏览:766
破解天翼路由器账号密码是什么 浏览:228
打开word2016文件的快捷键是什么 浏览:606
怎么删除mac上的app 浏览:566
xp系统服务在哪里 浏览:711
java微信公众号支付 浏览:50

友情链接