视图说课讲解

上传人:yulij****0329 文档编号:138210701 上传时间:2020-07-14 格式:PPT 页数:30 大小:572.50KB
返回 下载 相关 举报
视图说课讲解_第1页
第1页 / 共30页
视图说课讲解_第2页
第2页 / 共30页
视图说课讲解_第3页
第3页 / 共30页
视图说课讲解_第4页
第4页 / 共30页
视图说课讲解_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《视图说课讲解》由会员分享,可在线阅读,更多相关《视图说课讲解(30页珍藏版)》请在金锄头文库上搜索。

1、视 图,视图介绍 创建和修改视图 通过视图修改数据 使用视图优化性能,案例,企业部门经理要查询所有客户订购的产品类别个数及产品数量 ,而且只有部门经理以上职位的人才能参看。,视图介绍,视图用于间接的访问其他的表或视图中的数据。 视图是一种虚拟的表,并不真正存储数据,只是一个媒介的作用。 在视图中被查询的表称为基表。,视图的优点,定制数据 让不同的用户以不同的方式看到不同或相同的数据集 只关注于重要的或适当的数据,限制对敏感数据的访问 简化操作 用户直接查询视图,而不需要写查询语句或执行脚本 安全性 不必对用户赋予查询基表中特定列的权限,而只需要赋予用户查询视图的权限即可,视图,视图简介 创建和

2、修改视图 通过视图修改数据 使用视图优化性能,创建和修改视图,创建视图 更改和删除视图 查找视图定义信息,创建视图,创建视图 可通过使用创建视图向导、企业管理器或 Transact-SQL 语句创建视图 执行 CREATE VIEW 语句的用户必须是 sysadmin、db_owner 或 db_ddladmin 角色的成员,或具有 CREATE VIEW 权限。在视图中引用的所有表和视图上,也要拥有 SELECT 权限,CREATE VIEW dbo.ViwOrderSubtotals (OrderID, Subtotal) AS SELECT OD.OrderID, SUM(CONVERT

3、(money,(OD.UnitPrice*Quantity*(1-Discount)/100)*100) FROM Order Details OD GROUP BY OD.OrderID GO,创建视图(续),视图定义的限制 仅当使用 TOP 关键字的时候,CREATE VIEW 语句才能包括 ORDER BY 子句 视图不能引用临时表 视图不能引用超过1024列 在单一批处理中,CREATE VIEW 语句不能和其他 Transact-SQL 语句组合使用,示例 联接表的视图,创建视图以提供一个方便地从两个或多个联接表中查看信息的方法,随堂练习,查询所有书籍的编号、书名、作者名 查询所有书

4、籍的书名、作者人数、出版商名、总销售量,查看视图定义信息,查找视图依赖:检索特定视图所依赖的表和视图以及依赖特定视图的对象 企业管理器 系统存储过程 sp_depends:sp_depends 对象名,查看视图文本内容 sp_helptext 视图名,CREATE VIEW dbo.ViwOrderSubtotals (OrderID, Subtotal) WITH ENCRYPTION AS SELECT OD.OrderID, SUM(CONVERT(money,(OD.UnitPrice*Quantity*(1-Discount)/100)*100) FROM Order Details

5、 OD GROUP BY OD.OrderID GO,创建视图(续),对视图文本内容进行加密,更改和删除视图,更改视图:可更改一个视图(包括索引视图)的定义,但不影响相关的存储过程或触发器,也不更改权限 使用新的 SELECT 语句和选项代替原来的定义 保留分配的权限,ALTER VIEW dbo.ViwOrderSubtotals AS SELECT OD.OrderID,sum(quantity) as total_quantity FROM Order Details OD GROUP BY OD.OrderID GO,更改和删除视图(续),删除视图:从数据库中删除视图的定义和所有分配给

6、它的权限 语法:DROP VIEW 视图名 ,.n DROP VIEW dbo.ViwOrderSubtotals 注意 更改视图语句不影响分配的权限 删除再重新创建视图的话则需要重新分配权限,视图,视图简介 创建和修改视图 通过视图修改数据 使用视图优化性能,通过视图修改数据,对视图数据的修改实际上是对基表的修改 一般来说,为了能通过视图修改数据,视图必须定义在单个表上,在 SELECT 语句中不能包括聚合函数或 GROUP BY 子句,create view AuthorView as select a.au_id,a.au_lname,au_fname,a.contract from a

7、uthors a GO,INSERT INTO AuthorView(au_id,au_lname,au_fname,contract) VALUES (315-41-6425,lfm,lfm1,1) GO,通过视图修改数据(续),明确地说,通过视图进行的修改 不能影响超过一个的底层的表。可以修改从两个或更多表得到的视图,但是每次更新或修改只能影响一个表 不能对某些列进行。不允许改变是某个计算的结果的列,例如包括计算值、内建函数或行聚合函数的列。 若视图定义中指定了 WITH CHECK OPTION 选项,则修改被校验,以符合 SELECT 语句中指明的标准。,通过视图修改数据(续),cre

8、ate view wa_publishers as select * from publishers where state = WA,INSERT INTO wa_publishers(pub_id,pub_name,city,state,country) VALUES (9994,Hziee,Atlanda,GI,USA),对数据有效性的维护 建立一个视图,功能是查询来自“WA”州的出版商的情况。,目的:通过此视图,只能运行在“WA”州的出版商才可以插入数据。,通过视图修改数据(续),INSERT INTO wa_publishers(pub_id,pub_name,city,state,

9、country) VALUES (9994,Hziee,Atlanda,GI,USA),对数据有效性的维护,create view wa_publishers as select * from publishers where state = WA with check option,结果:通过此视图插入数据失败,实现了对数据有效性的维护。,视图,视图简介 创建和修改视图 通过视图修改数据 使用视图优化性能,使用视图优化性能,性能考虑 使用索引视图 使用视图来分区数据,性能考虑,当联接多个表并计算复杂的表达式的视图嵌套在其他视图中的时候,性能问题的来源可能会难以确定 创建单独的视图定义,而不采

10、用嵌套视图,使用索引视图,索引视图:结果集保留在数据库中并建立了索引以供快速访问的视图 创建索引视图的利弊 有利:由于结果集已经存储在数据库中,所以性能可以得到提升。 不利:由于索引视图要占用磁盘空间,所以系统产生一定的开销。,使用索引视图(续),下图说明了使用索引视图时一般能够提高多少性能。提供的查询复杂程度各不相同(例如,聚合计算的数量、所用表的数量或谓词数),并包括来自实际生产环境的数百万行的大表。,使用索引视图(续),创建索引视图的限制 视图上创建的第一个索引必须是惟一聚集索引,之后才可以在视图上创建其他索引 创建视图时必须使用 SCHEMABINDING 选项 视图可以引用基表,但不

11、能引用其他视图,索引视图使用场合 对检索速度的要求高 底层的数据很少更新 查询进行了大量的联接和聚合操作,需要处理很多数据行或被很多用户频繁调用,创建索引视图,先创建视图,CREATE VIEW Indexed_View WITH SCHEMABINDING AS Select employeeid, lastname+-+fristname as name from dbo.employees GO,再创建索引,CREATE UNIQUE CLUSTERED INDEX CLU_Indexed_View ON Indexed_View(EmployeeID),必须要写,对象名必须由2部分组成,使用视图来分区数据,SQL Server 如何使用视图来分区数据 在一个视图内可以使用 UNION 集合操作将来自于不同表的两个或多个查询的结果合并成单个结果集,这对用户来说就像是一个表,称为分区视图 分区视图可以基于多个异构数据源的数据,这样可以将数据库处理过程分布到一组服务器上 分区视图如何改善性能 分区视图内的表在不同服务器上,或在一台具有多个处理器的计算机上,可以并发扫描查询所涉及的每个表 维护任务可以进行得更快,因为每个数据集较小,使用视图来分区数据(续),回顾,描述视图的概念 列举视图的优点 使用 CREATE VIEW 语句定义视图 通过视图修改数据 使用视图优化性能,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号