内容正文:
编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第67练,内容是事件概述和创建事件。
《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第67练
事件概述和创建事件
一、单项选择题
1. 临时开启 MySQL 事件调度器,下列 SQL 语句语法完全正确的是( )
A. SET event_scheduler=ON;
B. SET GLOBAL event_scheduler=ON;
C. SET SESSION event_scheduler=1;
D. SET GLOBAL event_scheduler='ON';
【答案】B
【解析】临时开启事件调度器必须使用SET GLOBAL(全局级别),不能省略或用SESSION;参数值ON/OFF或1/0均可,但不能加单引号(加引号会被识别为字符串,部分版本报错)。A 错误:缺少GLOBAL;C 错误:不能用SESSION;D 错误:ON加了单引号。
2.查询当前事件调度器的状态,下列写法正确的是( )
A. SHOW VARIABLES event_scheduler;
B. SHOW VARIABLES LIKE "event_scheduler";
C. SELECT event_scheduler;
D. SHOW VARIABLES LIKE 'event_scheduler';
【答案】D
3.创建一个单次执行的事件(2026 年 12 月 31 日 23:59:59 执行),下列语法正确的是( )
A. CREATE EVENT IF NOT EXISTS e_single ON SCHEDULE AT 2026-12-31 23:59:59 DO TRUNCATE TABLE log;
B. CREATE EVENT IF NOT EXISTS e_single ON SCHEDULE AT '2026-12-31 23:59:59' DO TRUNCATE TABLE log;
C. CREATE EVENT IF NOT EXISTS e_single ON SCHEDULE EVERY '2026-12-31 23:59:59' DO TRUNCATE TABLE log;
D. CREATE EVEVT IF NOT EXISTS e_single ON SCHEDULE AT '2026-12-31 23:59:59' DO TRUNCATE TABLE log;
【答案】B
【解析】单次事件用AT 时间戳,时间戳必须加单引号;关键字为EVENT(注意拼写)。A 错误:时间戳未加单引号;C 错误:EVERY用于重复事件,不能接固定时间戳;D 错误:EVENT拼写为EVEVT(拼写错误)。
4.创建一个每 1 小时执行一次的重复事件,下列语法正确的是( )
A. CREATE EVENT e_hourly ON SCHEDULE EVERY 1 HOUR DO INSERT INTO stats(data) VALUES(NOW());
B. CREATE EVENT e_hourly ON SCHEDULE EVERY HOUR 1 DO INSERT INTO stats(data) VALUES(NOW());
C. CREATE EVENT e_hourly ON SCHEDULE EVERY 1 HOURS DO INSERT INTO stats(data) VALUES(NOW());
D. CREATE EVENT e_hourly ON SCHEDULE EVERY 1 HOUR STARTS 2026-05-04 00:00:00 DO INSERT INTO stats(data) VALUES(NOW());
【答案】A
【解析】重复事件语法为EVERY 数量 时间单位(时间单位用单数:YEAR/MONTH/DAY/HOUR/MINUTE/SECOND);STARTS后的时间戳必须加单引号。B 错误:数量和时间单位顺序颠倒;C 错误:时间单位用了复数HOURS;D 错误:STARTS后的时间戳未加单引号。
5.创建事件时要求 “执行完毕后保留事件”,下列参数写法正确的是( )
A. CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY ON PRESERVE COMPLETION DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY;
B. CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY;
C. CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY ON COMPLETION NOT PRESERVE DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY;
D. CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY PRESERVE ON COMPLETION DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY;
【答案】B
【解析】保留事件的标准参数为ON COMPLETION PRESERVE(固定顺序,不能拆分或颠倒);NOT PRESERVE为执行后删除(默认行为)。A 错误:PRESERVE和COMPLETION顺序颠倒;C 错误:NOT PRESERVE会删除事件;D 错误:参数顺序完全错误。
6.创建事件时设置 “事件创建后暂不执行,后续手动启用”,下列状态参数写法正确的是( )
A. CREATE EVENT e_weekly ON SCHEDULE EVERY 1 WEEK ON COMPLETION PRESERVE ENABLED DO UPDATE goods SET stock=stock+100 WHERE g_id=1;
B. CREATE EVENT e_weekly ON SCHEDULE EVERY 1 WEEK ON COMPLETION PRESERVE DISABLED DO UPDATE goods SET stock=stock+100 WHERE g_id=1;
C. CREATE EVENT e_weekly ON SCHEDULE EVERY 1 WEEK ON COMPLETION PRESERVE DISABLE DO UPDATE goods SET stock=stock+100 WHERE g_id=1;
D. CREATE EVENT e_weekly ON SCHEDULE EVERY 1 WEEK DISABLE ON COMPLETION PRESERVE DO UPDATE goods SET stock=stock+100 WHERE g_id=1;
【答案】C
7.为事件添加注释 “每月 1 号凌晨 1 点统计上月销量”,下列 COMMENT 参数写法正确的是( )
A. CREATE EVENT e_monthly ON SCHEDULE EVERY 1 MONTH STARTS '2026-06-01 01:00:00' ON COMPLETION PRESERVE COMMENT '每月1号凌晨1点统计上月销量' DO INSERT INTO sales_report(month,total) SELECT DATE_FORMAT(NOW()-INTERVAL 1 MONTH,'%Y-%m'),SUM(amount) FROM sale;
B. CREATE EVENT e_monthly ON SCHEDULE EVERY 1 MONTH STARTS '2026-06-01 01:00:00' ON COMPLETION PRESERVE COMMENT 每月1号凌晨1点统计上月销量 DO INSERT INTO sales_report(month,total) SELECT DATE_FORMAT(NOW()-INTERVAL 1 MONTH,'%Y-%m'),SUM(amount) FROM sale;
C. CREATE EVENT e_monthly ON SCHEDULE EVERY 1 MONTH STARTS '2026-06-01 01:00:00' ON COMPLETION PRESERVE COMMENT='每月1号凌晨1点统计上月销量' DO INSERT INTO sales_report(month,total) SELECT DATE_FORMAT(NOW()-INTERVAL 1 MONTH,'%Y-%m'),SUM(amount) FROM sale;
D. CREATE EVENT e_monthly ON SCHEDULE EVERY 1 MONTH STARTS '2026-06-01 01:00:00' ON COMPLETION PRESERVE COMMENT "每月1号凌晨1点统计上月销量" DO INSERT INTO sales_report(month,total) SELECT DATE_FORMAT(NOW()-INTERVAL 1 MONTH,'%Y-%m'),SUM(amount) FROM sale;
【答案】A
【解析】COMMENT参数语法为COMMENT '注释内容'(注释必须加单引号,不能加等号,不能用双引号)。B 错误:注释未加单引号;C 错误:COMMENT后多了等号;D 错误:注释用了双引号。
8.事件主体包含多条 SQL 语句,下列写法正确的是( )
A. CREATE EVENT e_multi ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO INSERT INTO operate_log(op_type,op_time) VALUES('每日统计',NOW()); UPDATE stats SET total=total+1 WHERE stat_date=CURDATE();
B. CREATE EVENT e_multi ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO BEGIN INSERT INTO operate_log(op_type,op_time) VALUES('每日统计',NOW()); UPDATE stats SET total=total+1 WHERE stat_date=CURDATE(); END;
C. CREATE EVENT e_multi ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO ( INSERT INTO operate_log(op_type,op_time) VALUES('每日统计',NOW()); UPDATE stats SET total=total+1 WHERE stat_date=CURDATE(); );
D. CREATE EVENT e_multi ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO BEGIN INSERT INTO operate_log(op_type,op_time) VALUES('每日统计',NOW()) UPDATE stats SET total=total+1 WHERE stat_date=CURDATE() END;
【答案】B
【解析】事件主体包含多条语句时,必须用BEGIN...END复合语句包裹;每条 SQL 语句末尾必须加分号 。A 错误:多条语句未用BEGIN...END包裹;C 错误:用小括号代替BEGIN...END(语法错误);D 错误:两条 SQL 语句末尾未加分号。
9.临时关闭 MySQL 事件调度器,下列 SQL 语句语法完全正确的是( )
A. SET GLOBAL event_scheduler=0;
B. SET event_scheduler=OFF;
C. SET GLOBAL event_scheduler='OFF';
D. SET @@event_scheduler=0;
【答案】A
【解析】临时关闭事件调度器必须用SET GLOBAL(或SET @@global.event_scheduler),参数值OFF/0均可,不能加单引号。B 错误:缺少GLOBAL;C 错误:OFF加了单引号;D 错误:缺少global(@@event_scheduler为会话级别,不能关闭全局调度器)。
10.下列语句完全正确的是( )
A. CREATE EVENT IF NOT EXISTS e_daily_clean ON SCHEDULE EVERY 1 DAY STARTS '2026-05-04 02:00:00' ON COMPLETION PRESERVE ENABLE COMMENT '每日凌晨2点清理7天前的日志' DO BEGIN DELETE FROM access_log WHERE create_time < NOW()-INTERVAL 7 DAY; INSERT INTO clean_log(clean_time,delete_count) VALUES(NOW(),ROW_COUNT()); END;
B. CREATE EVENT IF NOT EXISTS e_daily_clean ON SCHEDULE EVERY 1 DAY STARTS '2026-05-04 02:00:00' ENABLE ON COMPLETION PRESERVE COMMENT '每日凌晨2点清理7天前的日志' DO BEGIN DELETE FROM access_log WHERE create_time < NOW()-INTERVAL 7 DAY; INSERT INTO clean_log(clean_time,delete_count) VALUES(NOW(),ROW_COUNT()); END;
C. CREATE EVENT IF NOT EXISTS e_daily_clean ON SCHEDULE EVERY 1 DAY STARTS 2026-05-04 02:00:00 ON COMPLETION PRESERVE ENABLE COMMENT '每日凌晨2点清理7天前的日志' DO DELETE FROM access_log WHERE create_time < NOW()-INTERVAL 7 DAY; INSERT INTO clean_log(clean_time,delete_count) VALUES(NOW(),ROW_COUNT());
D. CREATE EVENT IF NOT EXISTS e_daily_clean ON SCHEDULE EVERY 1 DAY STARTS '2026-05-04 02:00:00' ON COMPLETION PRESERVE ENABLED COMMENT='每日凌晨2点清理7天前的日志' DO BEGIN DELETE FROM access_log WHERE create_time < NOW()-INTERVAL 7 DAY; INSERT INTO clean_log(clean_time,delete_count) VALUES(NOW(),ROW_COUNT()); END;
【答案】A
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第67练,内容是事件概述和创建事件。
《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第67练
事件概述和创建事件
一、单项选择题
1. 临时开启 MySQL 事件调度器,下列 SQL 语句语法完全正确的是( )
A. SET event_scheduler=ON;
B. SET GLOBAL event_scheduler=ON;
C. SET SESSION event_scheduler=1;
D. SET GLOBAL event_scheduler='ON';
2.查询当前事件调度器的状态,下列写法正确的是( )
A. SHOW VARIABLES event_scheduler;
B. SHOW VARIABLES LIKE "event_scheduler";
C. SELECT event_scheduler;
D. SHOW VARIABLES LIKE 'event_scheduler';
3.创建一个单次执行的事件(2026 年 12 月 31 日 23:59:59 执行),下列语法正确的是( )
A. CREATE EVENT IF NOT EXISTS e_single ON SCHEDULE AT 2026-12-31 23:59:59 DO TRUNCATE TABLE log;
B. CREATE EVENT IF NOT EXISTS e_single ON SCHEDULE AT '2026-12-31 23:59:59' DO TRUNCATE TABLE log;
C. CREATE EVENT IF NOT EXISTS e_single ON SCHEDULE EVERY '2026-12-31 23:59:59' DO TRUNCATE TABLE log;
D. CREATE EVEVT IF NOT EXISTS e_single ON SCHEDULE AT '2026-12-31 23:59:59' DO TRUNCATE TABLE log;
4.创建一个每 1 小时执行一次的重复事件,下列语法正确的是( )
A. CREATE EVENT e_hourly ON SCHEDULE EVERY 1 HOUR DO INSERT INTO stats(data) VALUES(NOW());
B. CREATE EVENT e_hourly ON SCHEDULE EVERY HOUR 1 DO INSERT INTO stats(data) VALUES(NOW());
C. CREATE EVENT e_hourly ON SCHEDULE EVERY 1 HOURS DO INSERT INTO stats(data) VALUES(NOW());
D. CREATE EVENT e_hourly ON SCHEDULE EVERY 1 HOUR STARTS 2026-05-04 00:00:00 DO INSERT INTO stats(data) VALUES(NOW());
5.创建事件时要求 “执行完毕后保留事件”,下列参数写法正确的是( )
A. CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY ON PRESERVE COMPLETION DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY;
B. CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY;
C. CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY ON COMPLETION NOT PRESERVE DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY;
D. CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY PRESERVE ON COMPLETION DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY;
6.创建事件时设置 “事件创建后暂不执行,后续手动启用”,下列状态参数写法正确的是( )
A. CREATE EVENT e_weekly ON SCHEDULE EVERY 1 WEEK ON COMPLETION PRESERVE ENABLED DO UPDATE goods SET stock=stock+100 WHERE g_id=1;
B. CREATE EVENT e_weekly ON SCHEDULE EVERY 1 WEEK ON COMPLETION PRESERVE DISABLED DO UPDATE goods SET stock=stock+100 WHERE g_id=1;
C. CREATE EVENT e_weekly ON SCHEDULE EVERY 1 WEEK ON COMPLETION PRESERVE DISABLE DO UPDATE goods SET stock=stock+100 WHERE g_id=1;
D. CREATE EVENT e_weekly ON SCHEDULE EVERY 1 WEEK DISABLE ON COMPLETION PRESERVE DO UPDATE goods SET stock=stock+100 WHERE g_id=1;
7.为事件添加注释 “每月 1 号凌晨 1 点统计上月销量”,下列 COMMENT 参数写法正确的是( )
A. CREATE EVENT e_monthly ON SCHEDULE EVERY 1 MONTH STARTS '2026-06-01 01:00:00' ON COMPLETION PRESERVE COMMENT '每月1号凌晨1点统计上月销量' DO INSERT INTO sales_report(month,total) SELECT DATE_FORMAT(NOW()-INTERVAL 1 MONTH,'%Y-%m'),SUM(amount) FROM sale;
B. CREATE EVENT e_monthly ON SCHEDULE EVERY 1 MONTH STARTS '2026-06-01 01:00:00' ON COMPLETION PRESERVE COMMENT 每月1号凌晨1点统计上月销量 DO INSERT INTO sales_report(month,total) SELECT DATE_FORMAT(NOW()-INTERVAL 1 MONTH,'%Y-%m'),SUM(amount) FROM sale;
C. CREATE EVENT e_monthly ON SCHEDULE EVERY 1 MONTH STARTS '2026-06-01 01:00:00' ON COMPLETION PRESERVE COMMENT='每月1号凌晨1点统计上月销量' DO INSERT INTO sales_report(month,total) SELECT DATE_FORMAT(NOW()-INTERVAL 1 MONTH,'%Y-%m'),SUM(amount) FROM sale;
D. CREATE EVENT e_monthly ON SCHEDULE EVERY 1 MONTH STARTS '2026-06-01 01:00:00' ON COMPLETION PRESERVE COMMENT "每月1号凌晨1点统计上月销量" DO INSERT INTO sales_report(month,total) SELECT DATE_FORMAT(NOW()-INTERVAL 1 MONTH,'%Y-%m'),SUM(amount) FROM sale;
8.事件主体包含多条 SQL 语句,下列写法正确的是( )
A. CREATE EVENT e_multi ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO INSERT INTO operate_log(op_type,op_time) VALUES('每日统计',NOW()); UPDATE stats SET total=total+1 WHERE stat_date=CURDATE();
B. CREATE EVENT e_multi ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO BEGIN INSERT INTO operate_log(op_type,op_time) VALUES('每日统计',NOW()); UPDATE stats SET total=total+1 WHERE stat_date=CURDATE(); END;
C. CREATE EVENT e_multi ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO ( INSERT INTO operate_log(op_type,op_time) VALUES('每日统计',NOW()); UPDATE stats SET total=total+1 WHERE stat_date=CURDATE(); );
D. CREATE EVENT e_multi ON SCHEDULE EVERY 1 DAY ON COMPLETION PRESERVE DO BEGIN INSERT INTO operate_log(op_type,op_time) VALUES('每日统计',NOW()) UPDATE stats SET total=total+1 WHERE stat_date=CURDATE() END;
9.临时关闭 MySQL 事件调度器,下列 SQL 语句语法完全正确的是( )
A. SET GLOBAL event_scheduler=0;
B. SET event_scheduler=OFF;
C. SET GLOBAL event_scheduler='OFF';
D. SET @@event_scheduler=0;
10.下列语句完全正确的是( )
A. CREATE EVENT IF NOT EXISTS e_daily_clean ON SCHEDULE EVERY 1 DAY STARTS '2026-05-04 02:00:00' ON COMPLETION PRESERVE ENABLE COMMENT '每日凌晨2点清理7天前的日志' DO BEGIN DELETE FROM access_log WHERE create_time < NOW()-INTERVAL 7 DAY; INSERT INTO clean_log(clean_time,delete_count) VALUES(NOW(),ROW_COUNT()); END;
B. CREATE EVENT IF NOT EXISTS e_daily_clean ON SCHEDULE EVERY 1 DAY STARTS '2026-05-04 02:00:00' ENABLE ON COMPLETION PRESERVE COMMENT '每日凌晨2点清理7天前的日志' DO BEGIN DELETE FROM access_log WHERE create_time < NOW()-INTERVAL 7 DAY; INSERT INTO clean_log(clean_time,delete_count) VALUES(NOW(),ROW_COUNT()); END;
C. CREATE EVENT IF NOT EXISTS e_daily_clean ON SCHEDULE EVERY 1 DAY STARTS 2026-05-04 02:00:00 ON COMPLETION PRESERVE ENABLE COMMENT '每日凌晨2点清理7天前的日志' DO DELETE FROM access_log WHERE create_time < NOW()-INTERVAL 7 DAY; INSERT INTO clean_log(clean_time,delete_count) VALUES(NOW(),ROW_COUNT());
D. CREATE EVENT IF NOT EXISTS e_daily_clean ON SCHEDULE EVERY 1 DAY STARTS '2026-05-04 02:00:00' ON COMPLETION PRESERVE ENABLED COMMENT='每日凌晨2点清理7天前的日志' DO BEGIN DELETE FROM access_log WHERE create_time < NOW()-INTERVAL 7 DAY; INSERT INTO clean_log(clean_time,delete_count) VALUES(NOW(),ROW_COUNT()); END;
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$