版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络数据库,内蒙古工业大学管理学院,王建国,(第十讲),2020/12/5,第七章 事务及PL/SQL游标,本章内容,7.1.1事务的概念 7.1.2 事务提交 7.1.3 事务回退 7.1.4 保留点,7.1 事务,7.2 PL/SQL 游标,7.2.1游标的概念 7.2.2 显式游标 7.2.3 隐式游标,7.1 事务,第七章 事务及PL/SQL游标 之,7.1 事务控制命令,7.1.1 事务的概念,7.1.2 事务提交,7.1.3 事务回退,7.1.4 保留点,事务控制命令,7.1.1 事务的概念,事务(Transaction)是指在相邻两条事务控制命令之间的一组SQL语句,它是对数据库
2、操作的逻辑单元。,事务的控制命令包括: COMMIT(事务提交) ROLLBACK(事务回退) SAVEPOINT(设置保留点),7.1.2 事务提交,提交命令(COMMIT)用于提交自上次提交以后对数据库中的数据所作的改动。,系统为每个用户设置一个工作区,对数据的所有操作都在该工作区进行。在执行COMMIT之前数据库的数据并没有发生任何改变。,在ORACLE中设置了自动提交开关,如果设为ON,所有的INSERT、UPDATE、DELETE的执行都会立即执行。 命令格式:SQL AUTO COMMIT ON,7.1.2 事务提交(续),提交命令(COMMIT)用于提交自上次提交以后对数据库中的
3、数据所作的改动。,例:在网络中,假设现在有两台客户机A和B都在访问服务器上的数据,其中A有权对数据进行增、删、改等操作。如果A删除了表EMP中的一条记录,但尚未执行提交命令,则此时B并不会发现表EMP中数据有任何变动;反之,如果A执行了提交命令,则此时B将会发现EMP少了一条记录。,7.1.3 事务回退,未提交的UPDATE、INSERT、DELETE操作,可以用事务回退命令ROLLBACK回退,回退之后数据库将回到上次COMMIT后的状态。,例:删除表EMP中姓名为FORD的雇员的所有信息,并取消以上操作。,7.1.3 事务回退(续),7.1.4 保留点,可以把一个事务划分成若干个部分,每一
4、部分之间用一个保留点(SAVEPOINT)进行分隔。这样,在必要时就可以不必回退整个事务,而只是回退一部分,使其余部分得到保留。,命令格式: SAVEPOINT 保留点名; ROLLBACK TO 保留点名;,7.1.4 保留点(续),例 首先给EMP表增加一条ENAME为LIU的新记录,插入保存点后再增加一条ENAME为FU的新记录。使用ROLLBACK命令回退至保留点,再尝试删除ENAME为FU和LIU的记录,观察有何现象发生。,7.2 PL/SQL中的游标,7.2.1 什么是游标,7.2.2 显式游标,7.2.3 隐式游标,7.2.1 什么是游标,为了处理SQL语句,ORACLE分配一片
5、内存区域,叫上下文区 游标是一个指向上下文区的句柄或指针。 游标主要用来处理一个查询语句有多行数据返回的情况。 在游标工作区中,指针在初始状态指向查询结果的首记录,可以通过FETCH语句,使指针逐行下移。 游标是一个PL/SQL结构,有两种类型: 显式游标和隐式游标,7.2.2 显式游标,3.2.2.1 显式游标处理的四个步骤,3.2.2.4 通过游标操纵数据库,3.2.2.2 游标的属性,3.2.2.5 带参数的游标,3.2.2.3 游标的FOR循环,7.2.2.1 显式游标处理的四个步骤,定义游标 (在说明部分) 打开游标 (在语句的执行部分) 将当前行结果提取到PL/SQL变量中(在语句
6、的执行部分) 关闭游标 (在语句的执行部分),7.2.2.1.1 定义游标,定义游标定义了游标的名字,并将该游标和一个SELECT语句相关联. 语法: CURSOR 游标名 IS SELECT 语句; 注意:此SELECT语句不能包含INTO子句。,例:cursor cl is select ename,deptno from emp; 可以在定义游标的语句中引用前面已经定义的变量。,7.2.2.1.2 打开游标,在定义了游标后,可以打开游标。打开游标就是执行游标所对应的SELECT语句,将其查询结果放入工作区,并且指针指向工作区的首部。 语法: OPEN 游标名; 例如: OPEN cl;,
7、7.2.2.1.3 提取值到变量,取值工作是将游标中的数据取出一行,放入指定的输出变量中。系统在每执行一次FETCH语句时,都将指针顺序下移一行,使下一行成为当前行。循环执行FETCH语句,直到整个活动集都被返回。 语法: FETCH 游标名 INTO 变量1,变量2.; 或: FETCH 游标名 INTO PL/SQL_RECORD; 例: DECLARE . V_CLASS C_CLASS%ROWTYPE; BEGIN FETCH CL INTO V_CLASS; END;,7.2.2.1.4 关闭游标,完成对SELECT语句的处理之后,就可以关闭游标.游标关闭后,系统释放与该游标关联的资
8、源.并使该游标的工作区变成无效。 语法: CLOSE 游标名; 例如: CLOSE cl;,7.2.2.1.5 使用游标的例子,例1 修改EMP表中各个雇员的工资:若雇员属于10号部门,则增加100元,若属于20号部门,则增加200元,若属于30号部门,增加300元,其它部门,不做修改。,SAMPLE,7.2.2.1.5 使用游标的例子(续),SAMPLE,7.2.2.2 游标的属性,从游标工作区中逐一提取数据,可以在循环中完成。但循环的开始以及结束,必须以游标的属性为依据。 游标的属性只能在PL/SQL块中使用,不能在SQL中使用。,7.2.2.2.1 使用游标属性的例子,例2 修改EMP表
9、中各个雇员的工资:若雇员属于10号部门,则增加100元,若属于20号部门,则增加200元,若属于30号部门,增加300元,其它部门,不做修改。,SAMPLE,7.2.2.2.2 用简单循环使用游标的例子,例3 从键盘接收部门号,然后将EMP表中的该部门人员的姓名及工资插入表TEMP中。,SAMPLE,7.2.2.3 游标的FOR循环,使用游标的FOR循环,系统隐式地定义了一个%ROWTYPE类型的记录,作为循环的计数器游标的FOR循环自动地 -打开游标 -取数据 -关闭游标,语法: FOR 记录名 IN 游标名 LOOP 语句1; 语句2; . END LOOP;,7.2.2.4 通过游标操纵
10、数据库,通过从游标工作区抽取出来的数据,可以对数据库中的数据进行操纵,包括修改、删除操作。,在定义游标时,必须加上FOR UPDATE OF子句。而且,在UPDATE或DELETE语句中,加上WHERE CURRENT OF 子句。,7.2.2.5 带参数的游标,定义显式游标时,可以加入参数的定义。这样,在使用游标时,对参数输入不同的数值,则游标工作区中所包含的数据也有所不同。 语法: CURSOR 游标名(参数1 数据类型,参数2 数据类型) IS SELECT 子句; 打开游标的语法: OPEN 游标名(,7.2.2.5 带参数的游标,例:从EMP表中查询某部门的雇员情况,使用带参数的游标。,上机作业:,2.对EMP表中的每一个雇员按不同情况征收个人所得税。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园大班下学期安全工作计划(14篇)
- 消防演讲稿(31篇)
- 认错保证书范文分析与借鉴
- 诚信请假责任书
- 语文大专拓展练习卷
- 语文实践领悟人生智慧的课堂
- 购买合同协议范本范例
- 购车合伙责任分担
- 购销合同使用说明
- 购销合同样式格式
- 【人教】第三次月考卷【九上全册】
- 公司组织架构图模板完整版可编辑 16
- 工业视觉系统运维员-国家职业标准(2023年版)
- 小学劳动教育二上第五单元-2-《剪五角红星》教学设计
- 期末测评-2024-2025学年统编版语文三年级上册
- 富士相机FUJIFILM X100T用户手册
- 第五版DFMEA和PFMEA的措施优先级AP
- 2025届高考语文复习:诗歌鉴赏之炼字炼句语言风格+课件
- 9-2《永遇乐-京口北固亭怀古》公开课一等奖创新教学设计统编版高中语文必修上册
- 基于“大观念”的初中英语单元整体教学设计
- 2024-2030年全球及中国对甲苯磺酸行业应用态势及前景趋势预测报告
评论
0/150
提交评论