数据库技术及应用教程8.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
视图操作 视图的概念 视图是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。和真实的表一样,视图也包括几个被定义的数据列和多个数据行,但从本质上讲,这些数据列和数据行来源于其所引用的表。因此,视图不是真实存在的基础表而是一个虚拟表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。 使用视图的优点和作用 视图大大地简化了用户对数据的操作 使用视图可以屏蔽数据的复杂性,用户不必了解数据库的结构,就可以方便地使用和管理数据,简化数据权限管理和重新组织数据以便输出到其他应用程序中。 可以使视图集中数据、简化和定制不同用户对数据库的不同数据要求。 视图提供了一个简单而有效的安全机制 创建视图 使用SQL语言创建视图 使用企业管理器创建视图 使用SQL语言创建视图 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 } 使用SQL语言创建视图 view_name用于指定视图的名称,column用于指定视图中的字段名称。 WITH ENCRYPTION表示 SQL Server 加密包含 CREATE VIEW 语句文本在内的系统表列。 select_statement用于创建视图的SELECT语句,利用SELECT命令可以从表中或者视图中选择列构成新视图的列。 WITH CHECK OPTION用于强制视图上执行的所有数据修改语句都必须符合由 select_statement 设置的准则 使用SQL语言创建视图 使用SQL语言创建实际就是SQL语言组合 格式 CREATE VIEW view_name AS SELECT …… FROM …… WHERE …… GO 修改试图使用ALTER VIEW view_name * [例3-77] 创建一学生情况视图S_SC_C(包括学号、姓名、课程名及成绩)。 CREATE VIEW S_SC_C(SNo, SN, CN, Score) AS SELECT S.SNo, SN, CN, Score FROM S, C, SC WHERE S.SNo = SC.SNo AND SC.CNo = C.CNo [例3-78] 创建一学生平均成绩视图S_Avg。 CREATE VIEW S_Avg(SNo, Avg) AS SELECT SNo, Avg(Score) FROM SC GROUP BY SNo 选择表student和teacher中的部分字段和记录创建视图,并且限制表student中的记录只能是名称为“张三”的记录集合,视图定义为view_part,其程序清单如下: create view view_part as Select student.name,student.age,student.sex, teacher.name,age,salary from student,teacher where student.name=’张三’ 使用SQL语言创建视图 一个复杂的视图 CREATE VIEW dbo.V_DD_HeTSL AS SELECT dbo.Ddhtgl_HTMX.HeTH, dbo.Ddhtgl_HTMX.HuoH, dbo.Ddhtgl_HTMX.HanL, dbo.Ddhtgl_HTMX.ShuL AS HeTSL, dbo.Ddhtgl_HTMX.ShuL - ISNULL(t1.DingDSL, 0) AS YuS FROM dbo.Ddhtgl_HTMX INNER JOIN (SELECT DDHTGL_DDMX.HuoH, DDHTGL_DDMX.HanL, DDHTGL_DDMX.HeTH, SUM(isnull(DDHTGL_DDMX.ShuL, 0)) AS DingDSL FROM DDHTGL_DDMX GROUP BY HuoH, HanL, HeTH) t1 ON dbo.Ddhtgl_HTMX.HuoH = t1.HuoH AND

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档