




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章视图操作和管理、视图概述、视图是派生自查询表的一个或多个表或视图的虚拟表。使用视图的优点是(1)视图只关心感兴趣的特定数据和用户负责的特定任务,不需要或无用的数据不会显示在视图中。(2)视图极大地简化了用户对数据的操作。(3)视图允许不同的用户以不同的方式查看不同的数据集或相同的数据集。(4)在某些情况下,由于表中的数据量太大,经常水平或垂直拆分表,但是表的结构更改会对应用程序产生不利影响。使用视图可以重新组织数据以保持外部模式不变,并在现有应用程序中通过视图重新加载数据。(5)视图提供了简单有效的安全机制。创建7.1视图,SQLServer2005提供了以下几种方法:(1)使用SQLServer管理平台创建视图。(2)Transact-使用SQL语句中的CREATEVIEW命令创建视图。(3)使用SQLSERVER管理平台的视图样板建立视图。创建视图时(1),只能在当前数据库中创建视图,视图最多只能引用1024列,视图中的记录数限制仅由基础表中的记录数决定。(2)如果删除了视图所参考的基本表格或视图,则在创建新的基本表格或视图之前,该视图将不再可用。(3)如果视图中的列与函数、数学表达式、常量或多个表中的列同名,则必须定义列的名称。(4)不能在视图中创建索引,也不能在规则、默认值和触发器的定义中引用视图。(5)通过视图查询数据时,SQLServer会检查语句是否包含所有相关的数据库对象,每个数据库对象在语句的上下文中是否有效,以及数据修改语句是否不能违反数据完整性规则。(6)视图的名称必须符合标识符的规则,并且对于每个用户必须是唯一的。此外,此名称不能与该用户拥有的表的名称相同。使用7.1.1 SQLSERVER管理平台创建视图和使用SQLSERVER管理平台创建视图的特定步骤如下:(1)展开SQLSERVER管理平台中指定的服务器,打开要在其中生成视图的数据库文件夹,选择指定的数据库,右键单击数据库图标,然后从弹出快捷菜单中选择“新建”“查看选项”,如图7-1所示。此时将显示添加表、视图和函数对话框。如图7-2所示。图7-1选择“新建视图选项”对话框,图7-2添加表,视图、函数对话框,使用7.1.1 SQLSERVER管理平台创建视图(2)选择创建视图所需的表、视图和函数,然后单击字段左侧的复选框选择所需的字段,如图7-3所示。单击工具栏上的“保存”按钮,或单击鼠标右键,然后从快捷菜单中选择“保存”选项,保存视图并输入视图名称以完成视图创建。图7-3选择视野对话框,使用7.1.2 Transact-SQL语句中的CREATEVIEW命令创建视图,使用Transact-SQL语句中的CREATEVIEW创建视图,其中create view schema _ name view _ name (column 、n with ,nasselect _ statementwithin check option3336363603360= encryption | schema binding | view _ meters程序列表如下:createviewview _ SAS ,s.age,s.sex,o,sc.scorfroms,scwheres.sno=sc.snoands.dept=电脑程序列表如下:CREATEVIEWexampleviewwitchemabindingasseletsno、sum(score)as score、count(*)ascouncolfromscgroupwbysno程序清单包括createviewv _ s hyjl (shyxh,shj,XM,jglb,phr,bzh) asselectinctshyxh,substring (shj,1这些功能通过基础表中字段之间的灵活运算,提供了根据需要定制符合要求的数据的非常方便的功能。您可以使用7.1.3样板建立视图,并使用视图样板轻松建立视图,如下所示:(1)在SQLSERVER管理平台的view菜单中,选择template explorer选项,如图7-4所示。(2)在如图7-5所示的样板浏览器选项中,选择“创建视图”选项。(3)可以按照提示输入视图名称,并在select语句后运行此语句以生成视图。图7-4选择工具菜单中的向导命令,创建图7-5视图模板,修改、删除和重命名7.2视图,修改7.2.1视图7.2.2重命名视图7.2.3查看视图信息,删除视图,修改7.2.1视图,修改视图有两种方法:(1)在SQLSERVER管理平台上,右键单击要修改的视图,然后从弹出菜单中选择设计视图选项,将显示修改视图对话框。可以使用与创建视图相同的方法修改视图。(2)使用ALTERVIEW语句修改视图。但是,在使用ALTERVIEW语句之前,必须存在alter view语句。alter view语句包含alter view _ name (column 、nwith encryptionas select _ statementwithin check option,修改7.2.1视图;示例7-4添加新字段employees.salary,并添加新字段名称employees . salary程序列表如下:alterviewdbo.employees (number,name,age,e _ salary) asselectumber,name,age,salarayromemployeeswherename在SQLSERVER管理平台上,选择要修改其名称的视图,然后右键单击并从快捷菜单中选择重命名选项。或者,您可以再次单击视图以更改视图的名称。然后视图的名称变为可输入,您可以直接输入新视图名称。2.使用系统存储过程sp_rename修改视图名称。sp_renameold_name,new_name示例7-5将视图v_all替换为v_part。程序列表如下:sp_renamev_all、v_part、7.2.3查看视图信息、删除视图、1。查看信息系统存储进程使用sp_help显示视图特征,使用sp_helptext在系统表中显示视图的定义,使用sp_depends显示视图所依赖的对象。可以使用SQLServer查询分析器轻松显示视图属性信息,如图7-7所示。图7-8显示了使用sp_helptext存储过程显示视图的生成语句。图7-7显示“视图属性”对话框,图7-8显示视图创建语句,7.2.3显示视图信息,删除视图,1 .查看视图信息可以使用select语句或SQLSERVER管理平台查看视图的输出数据。在SQLSERVER管理平台中,右键单击视图名称,然后从弹出快捷菜单中选择打开视图选项,SQLSERVER管理平台将显示该视图的输出数据,如图7-9所示。图7-9视图输出数据窗口,查看7.2.3视图信息,删除视图,2 .删除视图对于不再使用的视图,可以在SQLSERVER管理平台或Transact-SQL语句中使用DROPVIEW命令将其删除。DROPVIEW view _ name ,n语法使用Transact-SQL语句删除视图。使用此命令可以同时删除多个视图,方法是用逗号分隔要删除的视图名称。示例7-6删除视图v_student和v_teacher。流程列表在通过dropviewv _ student、v _ teacher、7.3视图修改记录和使用视图修改数据时,请注意以下事项:(1)在视图中修改数据时,不能同时修改两个或多个基表,可以基于两个或多个基表或视图修改视图,但每次修改时仅影响一个基表。(2)不能修改通过计算生成的字段,例如包含计算值或求和函数的字段。(3)如果在创建视图时指定了WITHCHECKOPTION选项,则在使用视图修改数据库信息时,必须确保修改的数据符合视图定义的范围。(4) UPDATE,DELETE命令将删除,更新的数据必须包含在视图的结果集中。(5)如果视图引用多个表,则DELETE命令不能删除数据,并且如果使用UPDATE命令,则更新的列必须与INSERT操作一样属于同一表。插入7.3.1数据记录,示例7-7基于表employees创建新视图v_employees。过程列表如下:createviewv _ employees (number、name、age、sex、salary) asselectumber、name、age、sex、salary插入insert into v _ employees values(001, lees ,22, m ,2000),7.3.1数据记录。示例7-8首先创建包含限制条件的视图v_employee2,在限制条件为付款2000后插入不符合限制条件的记录,然后使用SELECT语句检索视图和表。程序清单如下:createviewv _ employee 2 as select * fromemployeehere薪金2000 goin sertionv _ employee 2 values(002,国王,30,程序清单如下:createviewv _ employee 3 as select * fromemployeehere薪金2000 withincheckoptiongoinsertionntov _ employee 3 values(002,)line 1 theattempteinsertorupdatefailedbecaethetvieweitherspecifiswithcheckoptionstraspansaviewthat specifiswithcheckoptionarowsesses通过使用视图删除记录,可以删除所有基表中的记录,还可以使用DELETE语句直接删除记录。但是,要删除记录,必须指定视图中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论