- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第7章视图及其应用;7.1.1视图的概念
视图是从一个或多个表〔或视图〕导出的表。视图与表〔有时为与视图区别,也称表为根本表——BaseTable〕不同,视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的根本表。;视图是一个虚拟表,只是用来查看数据的窗口而已。视图与真正的表很类似,也是由一组命名的列和数据行所组成,其内容由查询所定义。但是视图并不是以一组数据的形式存储在数据库中,数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的根本表中。当根本表中的数据发生变化时,从视图中查询出来的数据也随之改变。;使用视图时,要注意以下事项:
(1)只有在当前数据库中才能创立视图。视图的命名必须遵循标识符命名规那么,不能与表同名,且对每个用户视图名必须是唯一的,即对不同用户,即使是定义相同的视图,也必须使用不同的名字。
(2)不能把规那么、默认值或触发器与视图相关联。
(3)不能在视图上建立任何索引,包括全文索引;优点:
数据保密、简化查询操作、保证数据的逻辑独立性。
缺点:
当更新视图中的数据时,实际上是对根本表的数据进行更新。当从视图中插入或者删除时,情况也是这样。然而,某些视图是不能更新数据的。;7.2视图的创立;7.2.1使用企业管理器创立视图;→从“添加表”对话框提供的列表中选择要使用的表或视图,单击“添加”按钮,或者双击选中的表或视图→选择完毕,单击“关闭”按钮,关闭“添加表”对话框→此时在新建视图窗口中,可看到相应的表或视图,然后从中间表格的“列”中的下拉列表中选择要使用的列名。或者直接从最上面的图表框中选择相应的列,或把它拖入中间的表格。在列区中选择将包括在视图的数据列,此时相应的SQLServer脚本便显示在SQLscript区→;→对每一列的“输出”列进行选中或取消选中,以便控制该列是否要在视图中出现→如果需要对某一列进行分组,可右键单击该列,从弹出菜单中选择Groupby选项→在“标准”列中,输入选择的条件,该条件与WHERE子句中的条件是对应的。如果在该列中指定了分组,那么该条件与HAVING子句中的条件相对应→单击工具栏中的红色惊叹号(!)来预览结果,或者单击“保存”并输入视图的名称,完成视图的创立。;7.2.2使用Transact-SQL创立视图;组成视图的列名(column_name)要么全部省略要么全部指定,如果省略了视图的列名,那么隐含该视图由SELECT_statement子句中结果集的列名组成。
WITHENCRYPTION表示加密选项;
AS之后的SELECT语句表示视图要完成的操作;
WITHCHECKOPTION选项强制所有通过视图修改的数据满足代码中的SELECT语句中指定的选择条件。;7.2.3使用创立视图向导程序;7.3视图定义的查询与修改;7.3.1查看和修改视图定义;通过系统存储过程查看视图的定义信息
sp_depends[@objname=]object
[@objname=]object为被检查的数据库对象。对象可以是表、视图、存储过程或触发器。
sp_help[[@objname=]name]
[@objname=]name是sysobjects中的任意对象的名称,或者是在systypes表中任何用户定义数据类型的名称。;通过系统存储过程查看视图的定义信息
sp_helptext[@objname=]name
[@objname=]name为对象的名称,将显示对象(视图或触发器或存储过程)的定义信息。对象必须在当前数据库中。;使用Transact-SQL语句修改视图定义
ALTERVIEWview_name[(column_name[,...n])]
[WITHENCRYPTION]
AS
SELECT_statement
[WITHCHECKOPTION];使用sp_rename系统存储过程对视图进行重命名
sp_rename[@objname=]object_name,
[@newname=]new_name
[,[@objtype=]object_type]
[@objname=]‘object_name’,表示现有用户对象或数据类型的名称;[@newname=]‘new_name’,表示对指定对象进行重命名的新名称;[@objtype=]object_type,表示将要被重命名的对象的类型,默认类型为NULL。;7.3.2视图的删除;7.4.1通过视图查询数据
7.4.2通过视图更新数据;视图定义后,对视图的查询操作如同对根本表的查询操作一样。;7
文档评论(0)