视图、存储过程、函数、游标与触发器.ppt

视图、存储过程、函数、游标与触发器.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
视图、存储过程、函数、游标与触发器 学习目标 掌握使用视图 掌握使用存储过程 掌握使用自定义标量函数、表值函数 掌握使用游标 掌握使用触发器 一、视图的定义 视图由SELECT查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式,同真实的数据表一样,视图也包含一系列带有名称的数据列和数据行,但视图与数据表又有很大的不同,视图中的数据并不真实的存在于数据库中。 1.1、视图的优点 简化查询 提供一种安全机制 视图掩码(对长的字段重新命名) 数据即时更新 1.2、视图的分类 标准视图:使用最频繁的视图,不存储任何数据,不占用任何存储空间 索引视图:拥有唯一群集索引的视图被称为索引视图,它存储真实索引数据,占用一定的存储空间。 分区视图:现在用分区表进行替代 1.2.1、标准视图 --创建带有部门编号的emp视图 SELECT dbo.EMP.EMPNO, dbo.EMP.ENAME, dbo.EMP.JOB, dbo.EMP.MGR, dbo.EMP.HIREDATE, dbo.EMP.SAL, dbo.EMP.COMM, dbo.EMP.DEPTNO, dbo.DEPT.DNAME FROM dbo.EMP INNER JOIN dbo.DEPT ON dbo.EMP.DEPTNO = dbo.DEPT.DEPTNO --通过视图修改数据 update v_emp_with_deptname set sal=800 where empno=7369 注意: (1)可以修改基于两个或两个以上基表的视图,但是每次修改只能影响一个基表,不能同时修改。 (2)不能修改通过计算得到的列、有内置函数的列以及有聚合函数的列 1.2.2、索引视图 --创建各部门人数的视图 drop view v_countOfDept go create view v_countOfDept WITH SCHEMABINDING as SELECT EMP.deptno,count_big(*) empcount FROM dbo.EMP group by emp.deptno --创建聚合索引 CREATE UNIQUE CLUSTERED INDEX i_v_countOfDept_deptno ON v_countOfDept(deptno) 注意: (1)创建索引视图,必须拥有唯一聚合索引,如果创建聚合索引,带有聚合函数的基础视图必须使用WITH SCHEMABINDING ,group by以及count_big函数 (2)使用索引视图能提高数据库效率 (3)如果视图引用任何非确定性函数,则不能在视图上创建聚集索引 1.2.3、分区视图 --创建分区视图 --将表进行行分割,emp表分解为emp1和emp2 select * into emp1 from emp where empno7782 go select * into emp2 from emp where empno=7782 go CREATE VIEW v_emp_with_1_and_2 AS SELECT * FROM emp1 UNION ALL SELECT * FROM emp2 注意:分区视图在sqlserver2005中被分区表替代 1.3、在Management Studio中创建视图 二、存储过程 存储过程是数据库系统中封装的代码模块,它采用T-SQL语言来编写,经编译后存放在数据库服务器中,具有很好的可重用性,可用于高效地完成某些操作 存储过程可以充分利用服务器的高性能运算能力,无需把大量的结果集送往客户端进行处理,大大减少了网络数据传输的开销,提高了应用程序访问数据库的速度和效率 2.1、使用存储过程的好处与特点 存储过程是已编译过的,并在服务器上注册和保存的代码模块,因而比一般的程序语句执行起来速度更快,同时减少了网络流量,节省了大量时间和数据流量。 存储过程可以使用控制语句和变量,并且在一个存储过程中可以调用其他存储过程,使得用户可以进行模块化程序设计,大大提高了用户设计程序的效率。 存储过程具有安全特性和所有权链接,可以执行所有的权限管理,用户可以被授予执行存储过程的权限,但不拥有直接对存储过程所引用对象的权限。 存储过程可以提高应用程序的安全性,防止SQL嵌入式攻击 存储过程可以允许代码绑定,引用当前不存在的对象,这些对象仅在存储过程执行时存在 2.2、存储过程的分类 用户自定义的存储过程:最主要的存储过程 系统存储过程:sp_前缀,系统预定义 扩展存储过程:保存在DLL动态链接库中并从动态链接库中执行的C++程序代码,

文档评论(0)

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

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

1亿VIP精品文档

相关文档