项目九 任务一 触发器(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂

2025-01-21
| 28页
| 243人阅读
| 2人下载
精品

内容正文:

9.1 MySQL的数据库编程 ----触发器 数据库原理与应用技术--MySQL 同步精品课堂 河北科学技术出版社 教学目标 一 了解触发器的概念 教学目标 掌握触发器创建、查看、删除的命令 熟悉触发器的种类 了解触发器的作用及使用原则 掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。 教学重难点 二 教学难点 触发器的创建、查看和删除命令 教学重点 触发器的应用 教学难点 导入新课 三 讨论: 触发器是与MySQL数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合,触发器可以保证数据的完整性,那么同学们知道触发器是如何保证数据的完整性吗? 任务一 1 触发器概述 新知讲授 四 ⊙触发器 触发器是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,而是由事件来触发的,例如,当对一个表进行操作(INSERT、DELETE、UPDATE)时就会激活它执行。 ➽ 触发器概述 1、可在写入数据表前,强制检验或转换数据; 2、触发器发生错误时,异动的结果会被撤销; 3、部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器; 4、可依照特定的情况,替换异动的指令(INSTEAD OF); ➽ 触发器的作用 新知讲授 四 ⊙触发器 ➽ 触发器的优缺点 自动执行 01 02 级联更新 03 强化约束 跟踪变化 04 强制业务逻辑 05 优点 新知讲授 四 ⊙触发器 ➽ 触发器的优缺点 缺点 如果触发频率高,占用内存,降低数据访问速度 01 相对不灵活,一旦触发马上执行,不能排除特殊情况 02 过度使用也会造成数据库的维护困难 03 新知讲授 四 ⊙触发器 ➽ 触发器的使用原则 触发器只能针对表级别的事件,不能针对行级别的事件。 01 触发器不能嵌套使用。 02 触发器的执行语句必须是原子性的,即不能包含多个SQL语句。 03 触发器的执行效率较低,应该尽量避免过多使用触发器。 05 触发器的执行语句不能对触发器所针对的表进行修改操作,否则会导致死循环。 04 任务二 1 创建触发器 新知讲授 四 ⊙创建触发器 ➽ 触发器的种类 触发器创建语法四要素如下: 1、触发地点(TABLE):触发器对哪个表起作用。 2、触发事件(INSERT/UPDATE/DELETE):在对表执行什么操作时触发; 3、触发时间(AFTER/BEFORE):在表执行相应操作前还是操作后触发; 4、触发器程序体(BEGIN.....END):触发后执行的动作; 每个表的每个事件每次只允许一个触发器,因此,每个表最多支持6种触发器,即BEFORE、INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。 新知讲授 四 ⊙创建触发器 ➽ 创建触发器 说明: 1、”触发器名“是指触发器的名称; 2、<INSERT | UPDATE | DELETE>为触发事件,用于指定激活触发器的语句的种类; 基本语法形式如下: CREATE TRIGGER <触发器> <BEFORE | AFTER> <INSERT | UPDATE | DELETE> ON <表名> FOR EACH ROW <触发器主体> 新知讲授 四 ⊙创建触发器 ➽ 创建触发器 说明: INSERT:将新行插入表时激活触发器,如INSERT语句。 DELETE:从表中删除某一行数据时激活触发器,如DELETE和REPLACE语句。 UPDATE:更改表中某一行数据时激活触发器,如UPDATE语句。 3、BEFORE和AFTER指触发器被触发的时刻。 4、FOR EACH ROW 一般是指行级触发,对于受触发事件影响的每一行都要激活触发器的动作。 新知讲授 四 ⊙创建触发器 ➽ 实例:在“student”表上创建一个触发器,要求插入的学生年龄必须小于20岁,如果插入学生数据年龄大于20岁,则在插入前将记录的“Stuage”字段值修改为20. 代码如下: CREATE TRIGGER stu_beforeinsert BEFORE INSERT ON student FOR EACH ROW BEGIN IF new.Stuage > 20 THEN SET new.Stuage=20; END IF; END 任务三 1 查看触发器 新知讲授 四 ⊙查看触发器 ➽ 查看当前数据库的所有触发器 基本语法形式如下: SHOW TRIGGER ➽ 查看当前数据库的某个触发器 基本语法形式如下: SHOW CREATE TRIGGER 触发器名 新知讲授 四 ⊙查看触发器 ➽ 查看指定数据表中的触发器信息 基本语法形式如下: SELECT * FROM information_schema.数据表名 ➽ 实例1:查看db_student数据库中的所有触发器 MySQL语句如下: SHOW TRIGGER; 新知讲授 四 ⊙查看触发器 ➽ 查看当前数据库的stu_beforeinsert触发器 MySQL语句如下: SHOW CREATE TRIGGER stu_beforeinsert; ➽ 查看指定TRIGGERS表中的触发器信息 MySQL语句如下: SELECT * FROM information_schema.TRIGGERS; 任务四 1 删除触发器 新知讲授 四 ⊙删除触发器 基本语法形式如下: DROP TRIGGER 触发器名 ➽ 实例:删除触发器stu_beforeinsert MySQL语句如下: DROP TRIGGER stu_beforeinsert; 师生互动 五 1、总结触发器的特点。 2、总结触发器的作用。 3、总结事件的创建、查看和删除命令 讨论 随堂练习 六 1、 关于触发器的描述,下列说法不正确的是( ) A.触发器可以确保数据的完整性 B.触发器是与表事件相关的特殊的存储过程 C.触发器由程序来进行调用 D.触发器在满足定义条件时触发,并执行触发器中定义的语句集合 【答案】C 【解析】触发器不是由程序来调用,而是由事件来触发。 随堂练习 六 2、下列选项中,哪一项不是触发器的事件( )。 A.INSERT B.UPDATE C. CREATE D.DELETE 【答案】C 【解析】触发器的事件有3个,分别是INSERT,DELETE,INSERT。 随堂练习 六 3、 每个表的每个事件每次只允许一个触发器,每个表最多支持( )种触发器。 A. 一 B. 三 C. 五 D. 六 【答案】D 【解析】每个表的每个事件每次只允许一个触发器,每个表最多支持6种触发器 随堂练习 六 4、下列选项中,( )关键字是在更改表中某一行数据时激活的触发器。 A.INSERT B.UPDATE C. CREATE D.DELETE 【答案】B 【解析】UPDATE是更新触发器的关键字。 随堂练习 六 5、删除触发器的命令是 _________。 【答案】DROP TRIGGER 触发器名 6、查看当前数据库的所有触发器的命令为 ___________。 【答案】SHOW TRIGGERS 课堂小结 七 谢谢 $$

资源预览图

项目九 任务一 触发器(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
1
项目九 任务一 触发器(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
2
项目九 任务一 触发器(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
3
项目九 任务一 触发器(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
4
项目九 任务一 触发器(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
5
项目九 任务一 触发器(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。