电工与电子技术电子商务电子课件MySQL数据库应用4.8 创建触发器ppt_第1页
电工与电子技术电子商务电子课件MySQL数据库应用4.8 创建触发器ppt_第2页
电工与电子技术电子商务电子课件MySQL数据库应用4.8 创建触发器ppt_第3页
电工与电子技术电子商务电子课件MySQL数据库应用4.8 创建触发器ppt_第4页
电工与电子技术电子商务电子课件MySQL数据库应用4.8 创建触发器ppt_第5页
已阅读5页,还剩16页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

1、电子课件MySQL数据库应用4.8 创建触发器项目4:创建数据库对象数据库应用任务3 触发器的创建和管理 创建触发器 教学目标 素质目标 知识目标1.培养学生自主学习能力;2.培养学生综合应用知识解决实际问题的能力;3.思政内容:通过讲触发器的一个重要特性,与计算机病毒的特性相联系,向学生传达正能量信息1.了解触发器的使用场景;2.理解创建触发器的各项语法规则;3.掌握创建INSERT、DELETE触发器的方法; 能力目标具备根据具体项目需求创建触发器的能力 教学重点创建INSERT、DELETE触发器。 教学难点创建INSERT触发器,要求对前面第四章和第五章的内容比较熟练。教学重难点1.抽

2、查与评讲作业;2.复习存储过程的创建及调用方法;3.检查课程预习情况:“触发器的执行时间有哪两种?”“触发事件有哪些?” 创建触发器5知识储备1什么是触发器触发器是一个特殊的存储过程,它与表紧密相连。基于表或视图定义了触发器后,当表或视图中的数据有对应操作事件发生时,激活触发器,从而执行触发器中所定义的语句。在MySQL中,只有触发INSERT、UPDATE和DELETE语句时,才会自执行所设置的操作,而其他SQL语句不会激活触发器。在实际应用中,通过使用触发器来对表实施比MySQL数据库本身标准的功能更精细、更复杂的数据控制功能,当触发器中所定义的数据被改变时,触发器被自动激活,并比较触发器

3、中所定义的规则以防止对数据进行非法修改,或者执行触发器中所定义的操作,以实现用户需求的功能。创建触发器 6知识储备互动:1你是如何理解触发器的?7创建触发器知识储备2创建触发器创建触发器的语法规则:CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW 触发器动作“BEFORE|AFTER”:表示触发器执行时间,BEFORE是指在触发器事件之前执行触发器语句,AFTER是指在触发器事件之后执行触发器语句;“触发事件”:触发器执行条件,包括INSERT、UPDATE和DELETE三种事件。“INSERT”表示向表中插入新行时激活触发器;“

4、UPDATE”表示更改表数据时激活触发器;“DELETE”表示删除表数据时激活触发器。创建触发器 8知识储备2创建触发器“FOR EACH ROW”:表示对table_name表中任何一条记录进行的操作满足触发条件时都会触发该触发器;触发器动作:表示触发器被激活后要执行的语句。在触发器的SQL语句中,可以关联表中的任何列,在对列进行标识时,可能会使用到 “OLD.列名”和“NEW.列名”,其中“OLD.列名”关联现有行的一列在被更新或删除前的值,“NEW.列名”关联新一行的插入或更新现有行的一列的值。“NEW.列名”:用于INSERT语句和UPDATE语句;“OLD.列名”:用于DELETE语

5、句和UPDATE语句。创建触发器 9知识储备互动问答:“NEW.列名”和“OLD.列名”适用于哪些情况?10创建触发器任务实施【任务1】在XSCJ数据库中创建一个number表,用于统计选修了各门课程的学生人数,要求在CJ表中添加学生的选课信息时,在number表中该门课程的选课人数会自动增加。第一步:做准备工作,创建用于存放统计人数的number表。首先创建一个number0表,用于存放每门课已有的选课人数。mysql create table number0 - select 课程号,count(*) 选课人数 - from cj - group by 课程号;Query OK, 9 ro

6、ws affected (0.07 sec)创建触发器 11任务实施然后创建number表,用于存放所有课程的选课人数。mysql create table number - select kc.课程号,选课人数 - from kc left join number0 - on kc.课程号=number0.课程号;把number表中选课人数=NULL的改为选课人数=0:mysql update number set 选课人数=0 where 选课人数 is null;查看number表现在已存放的数据情况:mysql select * from number;查询结果如图所示:创建触发器 1

7、2任务实施第二步:创建触发器。mysql create trigger insert_cj after insert - on cj - for each row - begin - update number set 选课人数=选课人数+1 where 课程号=new.课程号; - end /创建触发器 13任务实施第三步:向CJ表中插入数据,验证触发器功能。mysql insert into cj values(2020110106,114,67,0),(2020110201,110,93,0);然后查看现在的number表数据,如图所示。创建触发器 14知识储备互动操作:1创建numbe

8、r0表。2创建number表。3把number表中选课人数=NULL改为选课人数=0。4创建触发器 insert_cj1。15创建触发器任务实施【任务2】在XSCJ数据库中,创建Delete触发器,要求实现在XSQK表中删除某个学生信息时(以主键学号作为删除条件),同时在CJ表中也将该学生的选课信息删除。mysql delimiter /mysql create trigger delete_xs before delete - on xsqk - for each row - begin - delete from cj where 学号=old.学号; - end /Query OK, 0

9、 rows affected (0.01 sec)mysql delimiter ;创建触发器 16任务实施验证触发器功能:假设需要删除XSQK表中学号为“2020110101”的学生。在XSQK表中删除该生之前,先查看一下该生在CJ表中的成绩信息,如图所示:在XSQK表中删除学号为“2020110101”的学生:mysql delete from xsqk where 学号=2020110101;再查看该生在CJ表中的成绩信息:mysql select * from CJ where 学号=2020110101;Empty set (0.00 sec)从运行后提示信息可见,在CJ表中已经没有学号为“2020110101”的成绩信息了。创建触发器 17知识储备互动操作:1创建Delete触发器。18创建触发器复习:1什么是触发器;2创建触发器的语法规则;3创建INSERT、U

温馨提示

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

评论

0/150

提交评论