数据库课件第6章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
建立触发器 格式: 注意: 多个DML触发器的执行顺序:先语句触发器后行触发器,先BEFORE后AFTER instead_of只针对视图使用,还要结合FOR EACH ROW使用 触发语句可以是DECLARE…BEGIN…END;也可以是CALL 存储过程 语句触发器 在表上执行某种DML操作就会自动触发代码。一般用于审计操作确保安全时使用,不能记录列数据的变化 如:要禁止操作人员在休息日改变职工信息,可以建立BEFORE触发器,保证安全 行触发器 执行DML操作时,每作用一行就要触发一次。可用于审计数据变化 对新旧数据的引用方式: 用old修饰符引用旧数据,如old.sal new修饰符引用新数据,如new.depno 注意: 触发器不能从基表中读取数据,即定义触发器时ON 后面的对象,不能在后面执行代码中查询该对象 AFTER行触发器举例1 如,要增加一个部门的职工,那么每增加一个就应该在部门表中人数字段增加1; AFTER行触发器举例2 每删除一个职工就要把人数减少1 多种DML操作触发不同操作 在一个触发器中合并前例的两个操作 运行此例之前要先删除前面两个触发器,drop trigger zy.tr_insert_emp;否则三个触发器都会起作用 第六章 PL/SQL程序设计 * 目 录 PL/SQL基础 PL/SQL的控制结构 游标 过程与函数 触发器 * PL/SQL语言基础 Oracle自己的过程化语言 特点:面向过程与SQL语言结合 可以定义变量使用控制语句 编写过程和函数 自定义类型和方法 编写运行环境或工具 SQL*Plus SQL Developer * PL/SQL程序结构 三部分: 从BEGIN开始执行,END后的“;”不可省 PL/SQL块的分类 匿名块、命名块、子程序(过程、函数、包)、触发器 DECLARE --定义部分,可选 BEGIN --执行部分,必须 EXCEPTION --异常处理部分,可选 END;/*结束标记*/ * 举例 * 使用DBMS_OUTPUT包 系统包:提供的函数和过程可用于输入输出信息,格式:DBMS_OUTPUT.函数/过程名 Put_line和Put过程:将信息写入缓冲区,并显示在屏幕上。put_line自动带结束符(换行),而put不带结束符,可用new_line过程在行尾添加结束符(无结束符的行不显示在屏幕) Get_line和get_lines过程:取得缓冲区的单行/多行信息放入变量中,并返回成功与否的状态信息或实际返回行 * Put_line和put输入了两行信息到缓冲区 此例中写入缓冲区多行信息 剩下缓冲区的信息被输出到屏幕上 将第一行信息写入line变量中。若要接收多行,需要定义表,且使用get_lines函数 成功取得一行,若没有获得行则值为1 * 变量和常量 命名规则: 变量必须以字母(A~Z,a~z)开头,若要以其他字符开头则必须用“”括起来,如“1234” 其后跟一个或多个字母、数字(0~9)或特殊字符$、# 或_ 变量长度不超过30个字符 变量名中不能有空格 变量名不能是关键字 声明格式 变量名 [CONSTANT] 数据类型 [[NOT NULL]{DEFAULT|:=}] Constant是常量的标志,必须赋初值 变量类型 * 使用%TYPE属性 当变量用于存放从表中取出的列值时,必须使用适合的类型和长度。为避免出错,可以用%TYPE属性定义变量,使之按照表中列的类型和宽度来定义 如:一般定义v_bmh VARCHAR2(10) 而定义成 v_bmh t1.bmh%type; 说明变量v_bmh的类型及长度是和t1表中bmh字段的类型及长度一样的。 * 表达式中使用的符号 类型 字符 说明 赋值运算符 := 变量:=表达式 数学运算符 + - * / ** 加号 减号 乘号 除号 乘幂 布尔运算符 = = = 相等 不等于 小于 大于 小于等于 大于等于 * 其他符号 类型 字符 说明 其他符号 .. || @ ‘ ’ “ ” 范围运算符 字符串连接 远程数据库指示符 字符串起始符号 字符串结束符号 捆绑变量指示器 引用开始符号 引用结束符号 * 日期时间:用‘’引用,要与系统日期时间参数所设置的格式相同 注释: 单行注释:用- -注释 多行注释:用/*… */ * 大小写规则 SQL关键字用大写,如SELECT、UPDATE PL/SQL关键字用大写,如BEGIN、END 数据类型用大写,如INT、VARCHAR2 标识符和参数用小写,如v_sal 数据库对象和字段用小写,如emp,ename 层次式缩进格式 DECLARE v_name VARCHAR2(1

文档评论(0)

yyh892289 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档