数据库基础-9.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库基础-9

数据库基础 第9章 事务、存储过程、 游标、视图和锁 课程回顾 子查询概述 SELECT子句中的子查询 WHERE子句中的子查询 子查询中的运算符 在HAVING子句中使用子查询 其它语句中的子查询 高效查询的技巧 课程目标 理解游标、事务的概念及作用 了解锁的相关知识 理解存储过程和触发器的作用 理解视图的含义及作用 内容进度 事务 存储过程 触发器 游标 视图 锁 事务模式 事务是作为单个逻辑工作单元执行的一系列操作。这一系列操作或者都被执行或者都不被执行。 事务做为一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务。 事务的属性 原子性 事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全都不执行。 一致性 事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。 隔离性 由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。 持久性 事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。 事务管理 定义事务的开始: 功能:标记一个显式本地事务的起始点。 提交事务: 功能:提交一个成功的事务。 回滚事务: 功能:将事务回滚到事务的起点或事务的某个保存点。 事务管理 例如,在SQL Server中定义一个事务charu(未提交)并将“学生基本信息表”中“民族”不是“汉族”的学生“民族”改成“少数民族”。代码如下: 事务管理 通过以上代码可以将“民族”不是“汉族”的学生“民族”改成“少数民族”,接着可以用ROLLBACK语句将未提交成功的事务回滚回来。代码为: 但是如果将事务提交出去以后,就不能再用ROLLBACK语句回滚事务了,这说明COMMIT TRANSACTION语句是用于标志已提交成功的事务的。 事务管理 以下案例中的事务不能再回滚。 事务管理 事务可以嵌套,嵌套事务中,内部事务所做的修改等提交完最外层事务之后才能生效。 内容进度 事务 存储过程 触发器 游标 视图 锁 存储过程简介 存储过程是存储在数据库服务器上的由SQL语句和控制流语句组成的一个预编译集合。存储过程分为系统存储过程以及用户存储过程。SQL Server的系统存储过程的命名通常以“sp_”作为前缀。 定义了一个存储过程之后,在应用程序中就可以对其进行调用。在存储过程中,不仅可以包含程序流、逻辑以及对数据库的查询,而且也可以接受参数、输出参数、返回单个或多个结果集。所以通过设计自定义用户存储过程,用户可以使其实现强大的编程功能。 系统会对存储过程中的SQL语句进行了预编译处理,使得执行速度有了大幅度的提升。存储过程被第一次调用后,会保存在高速缓冲区中,这样再次执行同一个存储过程时,会提高了重复调用的效率。在实际应用中,可以将复杂的商业规则封装在存储过程中,从而提高程序语句的利用率。 存储过程的优点 存储过程一旦执行一次后,其执行的计划就会驻留在计算机的高速缓冲存储器中。其后对同一个存储过程的调用就可以直接利用编译后在高速缓存中的二进制指令来完成操作。 可以在单个存储过程中执行一系列SQL语句,因而可以用于设计、封装企业的功能模块。应用程序使用相同的存储过程进行操作,确保了在数据访问、操纵的一致性。 可以在当前的存储过程内部引用其它存储过程,这样可以将复杂语句进行简化。 提供了一种数据库访问的途径,只需要用户拥有执行存储过程的权限,那么通过使用存储过程就可以完成对数据库的各种操作,如添加数据、修改数据、删除数据等,而不需要考虑用户是否拥有存储过程所处理的数据对象的访问权限。 创建存储过程 CREATE PROCEDURE语句用来创建存储过程。其基本语法格式为: 创建和执行存储过程 例如,在学生成绩数据库“XSCJ”中,使用CREATE PROCEDURE语句创建一个名称为proc_bjrs的存储过程,用于检索现有班级及人数: 执行以上命令后,可以执行该存储过程: 创建和执行存储过程 创建存储过程时可以申明一个或者多个参数。例如,我们可以设计一个带有参数的存储过程,根据班级编号在学生基本信息表中检索出某一个班级中所有学生的信息: 其中@bjbh可用于接收班级编号。执行时将实参加在存储过程名的后面: 修改存储过程 使用ALTER PROCEDURE语句可以修改存储过程。ALTER PROCEDURE语句可以对数据库中已有的

文档评论(0)

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

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

1亿VIP精品文档

相关文档