数据基础及应用 4_第1页
数据基础及应用 4_第2页
数据基础及应用 4_第3页
数据基础及应用 4_第4页
数据基础及应用 4_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教案二:触发器、存储过程与事件(7.6-7.8)(2学时)一、授课内容本节课主要讲授MySQL中三种重要的数据库编程对象:触发器、存储过程和事件,具体包括以下内容:(一)触发器1.触发器的概念触发器是由INSERT、UPDATE、DELETE等基本命令事件触发自动执行的程序语句。触发器用于实现数据完整性约束、跟踪变化、级联运行等。使用OLD关键字引用修改前的数据,NEW关键字引用修改后的数据。2.创建触发器CREATETRIGGER触发器名称BEFORE|AFTER触发事件ON表名FOREACHROWBEGIN…END。BEFORE在事件前执行,AFTER在事件后执行。FOREACHROW表示行级触发。3.查看和删除触发器查看:SHOWTRIGGERS或SELECT*FROMinformation_schema.triggers。删除:DROPTRIGGER触发器名称。(二)存储过程1.存储过程的概念存储过程是经过预编译存储在数据库中的一组SQL语句,具有可重复使用、执行效率高、减少网络通信量、安全性高等优点。2.创建和执行存储过程创建:CREATEPROCEDUREsp_name([参数])BEGIN…END。执行:CALLsp_name([参数])。参数分为IN(输入)、OUT(输出)两类。3.修改和删除存储过程修改:ALTERPROCEDUREsp_name[CHARACTERISTIC…],只能修改特性不能修改参数和语句体。删除:DROPPROCEDUREsp_name。4.存储过程参数与状态值IN参数:调用程序向存储过程传送数据。OUT参数:存储过程将结果传回调用程序。调用OUT参数时需使用会话变量接收返回值。(三)事件1.事件的概念事件调度器(EventScheduler)是MySQL5.1新增的定时任务调度器,可以在指定时间或周期性间隔自动执行SQL语句。事件与触发器的区别:触发器针对表操作触发,事件按时间调度执行。2.查看事件是否开启SELECT@@event_scheduler。开启方式:SETGLOBALevent_scheduler=on(临时)或在my.ini中添加event_scheduler=on(永久)。3.创建事件CREATEEVENTevent_nameONSCHEDULEschedule[ONCOMPLETION[NOT]PRESERVE][ENABLE|DISABLE]DOevent_body。调度方式:ATtimestamp(一次执行)或EVERYinterval[STARTS…ENDS…](周期执行)。4.修改和删除事件修改:ALTEREVENTevent_name…,可修改调度、启用/禁用。删除:DROPEVENT[IFEXISTS]event_name。二、教学目标(一)知识目标1.理解触发器的概念、作用和执行时机2.掌握创建、查看和删除触发器的方法3.理解存储过程的概念和优点4.掌握创建、执行、修改和删除存储过程的方法5.掌握存储过程IN和OUT参数的使用6.理解事件的概念,掌握创建和管理事件的方法(二)能力目标1.能够根据业务需求创建合适的触发器2.能够创建带参数的存储过程实现复杂的数据库操作3.能够创建事件实现定时数据维护任务(三)素养目标1.培养学生利用数据库编程对象优化系统设计的能力三、教学重点与难点(一)教学重点1.触发器的创建语法和OLD/NEW关键字的使用2.存储过程的创建、执行和参数传递3.事件的调度方式和创建语法(二)教学难点1.触发器中BEFORE和AFTER的区别及适用场景2.存储过程中游标、异常处理器的综合使用3.事件调度器中INTERVAL参数的灵活设置四、教学实施(一)导入环节(5分钟)在实际应用中,我们经常需要一些自动化的操作。比如"每当删除一个学生时,自动把该学生的信息备份到日志表中"——这需要触发器。比如"经常需要查询某个学生的选课成绩,不想每次都写一大段SQL"——这需要存储过程。比如"每天凌晨自动统计昨天的数据"——这需要事件调度器。MySQL提供了这三种编程对象来满足这些需求。(二)讲授环节(55分钟)1.触发器(15分钟)(1)讲解触发器的概念和作用(3分钟)讲解触发器的四大功能:强化约束、跟踪变化、级联运行、存储过程调用。讲解OLD和NEW关键字的含义。(2)创建触发器(7分钟)讲解CREATETRIGGER语法。演示例7-25:在student表上创建DELETE触发器,删除记录时自动备份到student_bak表。执行DELETE语句观察触发器效果。(3)查看和删除触发器(5分钟)演示SHOWTRIGGERS查看触发器信息,演示DROPTRIGGER删除触发器。2.存储过程(25分钟)(1)存储过程的概念和优点(3分钟)讲解存储过程的五大优点:可重复使用、执行效率高、减少网络通信量、安全性高、操作一致性。(2)创建和执行存储过程(10分钟)演示例7-27:创建简单存储过程查询学生选课成绩。演示例7-28:创建带游标和异常处理的存储过程统计平均成绩。演示例7-29:执行存储过程。(3)修改和删除存储过程(3分钟)演示ALTERPROCEDURE修改特性,DROPPROCEDURE删除存储过程。强调ALTER只能修改特性不能修改语句体。(4)存储过程参数(9分钟)演示例7-32:IN参数(输入学号查询选课成绩)。演示例7-34:OUT参数(输入学号输出入学成绩),讲解会话变量接收返回值的方法。演示例7-33:多个IN参数的组合使用。3.事件(15分钟)(1)事件的概念和开启(3分钟)讲解事件调度器的概念。演示SELECT@@event_scheduler查看状态,演示SETGLOBALevent_scheduler=on开启。(2)创建事件(7分钟)讲解CREATEEVENT语法,包括ONSCHEDULE子句(AT/EVERY)、ONCOMPLETION子句(PRESERVE/NOTPRESERVE)。演示例7-35:创建事件每隔1分钟统计学生人数。(3)修改和删除事件(5分钟)演示例7-36:修改事件调度频率为每10分钟。演示ALTEREVENT…DISABLE临时关闭事件。演示例7-37:DROPEVENT删除事件。(三)实践环节(25分钟)【课堂练习】学生根据student数据库,完成以下操作:练习1:创建触发器,当向student表插入新记录时,自动在日志表中记录操作时间和学号练习2:创建存储过程,输入课程编号,输出该课程的选课人数和平均成绩(OUT参数)练习3:创建存储过程,输入专业名称,查询该专业所有学生的选课成绩单练习4:创建事件,每隔5分钟向日志表中插入当前时间练习5:修改练习4的事件,将其关闭,然后重新开启练习6:删除练习1创建的触发器(四)课堂总结(5分钟)1.提问:触发器中OLD和NEW分别代表什么?2.提问:存储过程的IN和OUT参数有什么区别?3.提问:事件和触发器有什么不同?4.总结本节课重点,布置课后习题(教材习题7的问答题和应用题)五、总结与反思(一)本节课总结本节课学习了三种重要的数据库编程对象。触发器由表的INSERT、UPDATE、DELETE操作自动触发,使用OLD引用旧数据、NEW引用新数据,可用于数据备份和约束enforcement。存储过程是预编译的SQL语句集合,支持IN和OUT参数,具有高效、安全、可复用等优点。事件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论