内容正文:
9.2 MySQL的数据库编程
----事件
数据库原理与应用技术--MySQL
同步精品课堂
河北科学技术出版社
教学目标
一
了解事件的概念
教学目标
掌握事件创建、查看、删除的命令
熟悉事件的开关调度
了解事件的作用及优缺点
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学重难点
二
教学难点
1、事件的优缺点
2、事件的相关命令
教学重点
事件与触发器的不同
教学难点
导入新课
三
讨论:
事件是MySQL在相应的时刻调用的过程式数据库对象。那么同学们知道事件是如何执行的吗?事件和触发器有什么区别吗?
任务一
1
事件概述
新知讲授
四
⊙事件概述
➽ 事件简介
★优点:一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。
★缺点:定时触发,不可以调用。
➽ 事件的优缺点
是MySQL在相应的时刻调用的过程式数据库对象。一个事件可以调用一次,也可以周期性地启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。
事件调度核心参数: event_scheduler
➽ 事件调度
新知讲授
四
⊙事件概述
1、SET GLOBAL event_scheduler=ON;
2、SET @@global.event_scheduler=ON;
3、SET GLOBAL event_scheduler=1;
4、 SET @@global.event_scheduler=1;
➽ 开启事件调度(临时)
➽ 关闭事件调度(临时)
1、SET GLOBAL event_scheduler=OFF;
2、SET @@global.event_scheduler=OFF;
新知讲授
四
⊙事件概述
3、SET GLOBAL event_scheduler=0;
4、 SET @@global.event_scheduler=0;
➽ 开关事件调度(永久)
1、 event_scheduler=1; #开启事件
2、event_scheduler=0; #关闭事件
任务二
1
创建事件
新知讲授
四
⊙创建事件
基本语法形式如下:
CREATE EVEVT [IF NOT EXISTS] <事件名>
ON SCHEDULE <时间表>
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE ]
[COMMENT ‘comment’ ]
DO
<事件主体>
➽ 创建事件
新知讲授
四
⊙创建事件
➽ 创建事件
说明:
1、“时间表”有两种方式:
(1)AT时间戳,用来完成单次的计划任务;
(2)EVERY时间(单位)的数量时间单位[STARTS时间戳][ENDS时间戳],用来完成重复的计划任务。
2、ON COMPLETION:表示“事件完成后”,即当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。而PRESERVE的作用是使事件在执行完毕后不会被删除掉。
新知讲授
四
⊙创建事件
MySQL语句如下:
CREATE EVEVT IF NOT EXISTS insert_from_student
ON SCHEDULE
AT ‘2023-12-07 17:00:00’
ON COMPLETION PRESERVE
DO
INSERT INTO student(StuID, Stuname,Stusex)VALUES(‘20220209‘,’王丽’,’女’);
➽ 实例:创建事件insert_from_student,要求在2023年12月7日17:00插入一条学生记录。
任务三
1
查询事件
新知讲授
四
⊙查询事件
➽ 查询系统中所有的事件
基本语法形式如下:
SHOW EVENTS
➽ 查询特定事件的详情
基本语法形式如下:
SHOW CREATE EVENT <事件名>
任务四
1
启动与关闭事件
新知讲授
四
⊙启动与关闭事件
➽ 启动事件
基本语法形式如下:
ALTER EVENT 事件名 ENABLE
一个事件可以是活动的或是停止的,活动意味着事件调度器检查事件动作是否必须调用,停止意味着事件的声明存储在目录中,但调度器不会检查它是否应该调用。在一个事件创建之后,它的状态是活动的,一个活动的事件可以执行一次或多次。
新知讲授
四
⊙启动与关闭事件
➽ 关闭事件
基本语法形式如下:
ALTER EVENT 事件名 DISABLE
任务五
1
修改事件
新知讲授
四
⊙修改事件
➽ 修改事件
基本语法形式如下:
ALTER EVENT <事件名>
ON SCHEDULE <时间表>
[ON COMPLETION [NOT] PRESERVE ]
[ENABLE | DISABLE]
[COMMENT ‘comment’]
DO
<事件主体>
新知讲授
四
⊙修改事件
MySQL语句如下:
ALTER EVEVT insert_from_student
ON SCHEDULE
AT ‘2023-12-08 8:00:00’
ON COMPLETION PRESERVE
DO
INSERT INTO student(StuID, Stuname,Stusex)VALUES(‘20220209‘,’王丽’,’女’);
➽ 实例:修改事件insert_from_student的执行时间为2023年12月8日上午8:00。
任务六
1
删除事件
新知讲授
四
⊙删除事件
➽ 删除现有事件
基本语法形式如下:
DROP EVENT [ IF EXISTS] <事件名>
➽ 实例:删除事件 insert_from_student
MySQL语句如下:
DROP EVENT IF EXISTS insert_from_student ;
师生互动
五
1、总结事件的特点和作用
2、总结事件的相关命令的使用方法。
讨论
随堂练习
六
1、 关于事件的描述,下列说法不正确的是( )
A.事件是MySQL在相应的时刻调用的过程式数据对象
B.事件与触发器不同,事件称为临时性触发器
C.事件可以调用一次,也可以周期性地启动
D.事件由一个特定的线程来管理
【答案】B
【解析】事件与触发器类似,称为临时性触发器。
随堂练习
六
2、 下列选项中,用于创建事件的命令是( )。
A. CREATE TABLE
B.CREATE EVENT
C. CREATE TRIGGER
D.CREATE VIEW
【答案】B
【解析】CREATE EVENT 命令用于创建事件
随堂练习
六
3、 下列选项中,( )命令不能查询事件调度状态。
A.SHOW EVENT
B.SHOW VARIABLES LIKE‘event_scheduler’
C.SHOW processlist
D.SHOW @@event_scheduler
【答案】A
【解析】SHOW EVENT是查看事件,并不是查看事件调度状态。
随堂练习
六
4、在MySQL中,用于修改事件的命令是( )。
A.CREATE EVENT
B.ALTER EVENT
C.ALTER VIEW
D.ALTER TABLE
【答案】B
【解析】ALTER EVENT 用于修改事件。
随堂练习
六
5、MySQL中的事件常见的工作有创建表、插入数据、删除数据、清空表和删除表。( )
【答案】对。MySQL中的事件常见的工作有创建表、插入数据、删除数据、清空表和删除表。
6、事件与触发器类似,事件是根据调度事件来启动的。( )
【答案】对。事件与触发器类似,事件是根据调度事件来启动的。
课堂小结
七
谢谢
$$