第六章 SQL程序设计与开发.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文档。上传文档
查看更多
6.6.2程序实例----函数 用户自定义函数调用 3 在调用函数时,要注意函数的调用要求在表达式中,而不能直接通过关键词EXECUTE来完成。 注意,在函数的定义中,也可以为形参指定默认值。 过程和函数的程序块一旦被成功执行,则在数据库中自动地存储了相应的对象,在过程和函数创建后,如果想进行修改,则可以重新执行修改后的创建过程和函数的程序块,但此时必须在声明时加上“OR REPLACE”关键词。 如果过程和函数不再需要时,最好在数据库中删除对应的对象,删除过程的语法如下所示: DROP PROCEDURE 过程名|函数名; 函数的维护 3 Example:删除前面创建的用户自定义函数。 6.6.2程序实例----函数 场景 东升软件公司的小王、小张和小李合接了个项目---开发高校学生学籍管理系统,在开发的过程中分别遇到了一些问题? 6.6.3程序实例----触发器Trigger 班级表(class)记录班级的基本信息,其中有一个字段是班级人数域(cont), 怎么样才能有效的实现:在学生表中增加一个学生记录后,班级表(class)中班级人数域(cont)的数据能够自动进行累计? 怎样才能实现当student表的student_no发生变化时,成绩表sc中该生的学号也自动进行相应的修改,以保证学生信息的一致性。 触发器的定义、优势和分类 1 触发器的定义   一种特殊类型的命名的PL/SQL程序块。但是与其他程序块不同,其 他程序块可以直接启动运行,而触发器的启动运行必须由某一个发生的 事件来激发。 触发器的优势 触发器是自动执行的。 触发器可以强制限制实现数据库的完整性(一致性、可靠性) 6.6.3程序实例----触发器Trigger 触发器的定义、优势和分类 1 触发器的分类   ----能让触发器执行的操作事件:    (1) DML事件:如INSERT、DELETE或UPDATE。    (2) 系统事件:如关闭数据库SHUTDOWN、启动数据库STARTUP、         服务器出错SERVERERROR发生时。    (3) 用户事件:如注册连接LOGON或注销LOGOFF。    (4) DDL事件:如CREATE、DROP或ALTER发生时。  ---触发器分类   (1) DML触发器 (表级别)     (2) 系统触发器 (数据库级别\用户级别)   (3) 替换触发器(视图触发器) 6.6.3程序实例----触发器Trigger 各种类型触发器的创建 2 各种类型触发器的创建-----DML触发器 2 DML触发器的基本内容 DML触发器是使用最多的的触发器,它只能定义在表上,由 INSERT、UPDATE、DELETE三种数据操作引发而启动执行;主要的 作用是增强表之间的引用完整性的。 班级表(class)记录班级的基本信息,其中有一个字段是班级人数域(cont), 怎么样才能有效的实现:在学生表中增加一个学生记录后,班级表(class)中班级人数域(cont)的数据能够自动进行累计? 怎样才能实现当student表的sno发生变化时,成绩表sc中该生的学号也自动进行相应的修改,以保证学生信息的一致性。 6.6.3程序实例----触发器Trigger 各种类型触发器的创建 2 各种类型触发器的创建-----DML触发器 2 DML触发器的四要素 ----触发事件:INSERT、DELETE或UPDATE ; ----触发时机:BEFORE或AFTER; ----触发对象: 表名 ----触发频率: 语句级触发器 行级触发器 FOR EACH ROW ----根据触发事件和触发时机来分: (1)BEFORE INSERT (2)AFTER INSERT (3)BEFORE UPDATE (4)AFTER UPDATE (5)BEFORE DELETE (6)AFTER DELETE ----根据触发事件、触发时机、触发频率划分类型: (1)BEFORE INSERT (2)BEFORE INSERT for each row (3)AFTER INSERT (4)AFTER INSERT for each row (5)BEFORE UPDATE (6)BEFO

文档评论(0)

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

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

1亿VIP精品文档

相关文档