专题十 触发器、事件和事件调度器(练习)-《数据库原理与应用技术》高考备考讲练测(河北省)

2025-04-07
| 2份
| 10页
| 192人阅读
| 1人下载

内容正文:

专题十 触发器、事件 一、单项选择题 1.触发器的主要作用是( ) A. 确保数据完整性 B. 提高数据插入速度 C. 减少数据存储空间 D. 优化查询性能 答案:A 解析:触发器通过事件触发执行逻辑,用于强制数据校验、级联更新等,保障数据完整性。 2.以下操作不会激活触发器的是( ) A. INSERT B. SELECT C. UPDATE D. DELETE 答案:B 解析:触发器仅由INSERT、UPDATE、DELETE操作激活,SELECT不触发。 3.创建触发器时,FOR EACH ROW表示( ) A. 表级触发 B. 行级触发 C. 数据库级触发 D. 仅执行一次 答案:B 解析:FOR EACH ROW表示对受影响的每一行数据执行触发器逻辑。 4.关于触发器的使用原则,错误的是( ) A. 触发器可以嵌套使用 B. 触发器不能修改其关联的表 C. 触发器执行语句需原子性 D. 每个表的每个事件只能有一个触发器 答案:A 解析:MySQL不支持触发器嵌套,嵌套会导致死循环。 5.以下查看所有触发器的命令是( ) A. SHOW TRIGGERS; B. SHOW CREATE TRIGGER; C. SELECT * FROM TRIGGERS; D. DESC TRIGGER; 答案:A 解析:SHOW TRIGGERS列出当前数据库所有触发器。 6.事件的调度参数 EVERY 1 DAY 表示( ) A. 每秒执行一次 B. 每天执行一次 C. 每月执行一次 D. 仅执行一次 答案:B 解析:EVERY指定周期,1 DAY表示每天执行。 7.永久开启事件调度器需修改( ) A. SET GLOBAL event_scheduler=ON; B. 修改配置文件 my.ini C. ALTER EVENT 事件名 ENABLE; D. SHOW VARIABLES LIKE 'event_scheduler'; 答案:B 解析:临时开启用SET GLOBAL,永久生效需修改配置文件。 8.删除触发器的正确语法是( ) A. DELETE TRIGGER 触发器名; B. TRUNCATE TRIGGER 触发器名; C. REMOVE TRIGGER 触发器名; D. DROP TRIGGER 触发器名; 答案:D 解析:DROP TRIGGER是删除触发器的标准语法。 9.以下关于事件的描述,正确的是( ) A. 事件调度器默认关闭 B. 事件可以手动调用 C. 事件支持每分钟执行一次 D. 事件优先级高于触发器 答案:A 解析:MySQL默认事件调度器未开启,需手动启动。 10.创建事件时,ON COMPLETION PRESERVE的作用是( ) A. 事件执行后自动删除 B. 事件仅执行一次 C. 事件永不执行 D. 事件执行后保留定义 答案:D 解析:PRESERVE保留事件定义,避免执行后自动删除。 二、判断题 1.触发器可以引用其他表的列。( ) 答案:√ 解析:触发器可以跨表操作,实现复杂约束。 2.事件可以精确到每秒执行一次。( ) 答案:√ 解析:MySQL事件调度器支持秒级精度,优于操作系统的分钟级。 3.BEFORE INSERT触发器用于在插入数据后执行逻辑。( ) 答案:× 解析:BEFORE表示在操作前触发,AFTER表示操作后。 4.同一表的同一事件可以定义多个触发器。( ) 答案:× 解析:每个表的每个事件仅支持一个触发器。 5.SHOW CREATE EVENT 事件名;可以查看事件的定义文本。( ) 答案:√ 解析:该命令返回创建事件的完整SQL语句。 6.事件调度器的状态可通过SHOW PROCESSLIST;查看。( ) 答案:√ 解析:开启后,事件调度器线程会出现在进程列表中。 7.触发器可以用于执行DDL语句。( ) 答案:× 解析:MySQL触发器不支持DDL操作,仅针对DML(INSERT/UPDATE/DELETE)。 8.ALTER EVENT可以修改事件的执行时间表。( ) 答案:√ 解析:ALTER EVENT允许调整事件的调度规则和执行内容。 9.删除事件时,IF EXISTS可以避免因事件不存在报错。( ) 答案:√ 解析:DROP EVENT IF EXISTS增强语句容错性。 10.触发器可以通过ROLLBACK撤销已提交的事务。( ) 答案:× 解析:触发器中的错误会回滚当前操作,但不能撤销已提交的事务。 三、命令题 1.创建名为trg_before_insert的触发器,在orders表插入数据前检查amount是否大于0。 答案: CREATE TRIGGER trg_before_insert BEFORE INSERT ON orders FOR EACH ROW BEGIN IF NEW.amount <= 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Amount must be positive'; END IF; END; 2.查看事件event_daily_report的详细定义。 答案: SHOW CREATE EVENT event_daily_report; 3.修改事件event_clean_log,将其改为每周执行一次。 答案: ALTER EVENT event_clean_log ON SCHEDULE EVERY 1 WEEK; 4.永久开启MySQL事件调度器。 答案: -- 修改配置文件 my.ini 添加: event_scheduler=ON 5.删除触发器trg_after_update。 答案: DROP TRIGGER trg_after_update; 学科网(北京)股份有限公司 $$ 专题十 触发器、事件 一、单项选择题 1.触发器的主要作用是( ) A. 确保数据完整性 B. 提高数据插入速度 C. 减少数据存储空间 D. 优化查询性能 2.以下操作不会激活触发器的是( ) A. INSERT B. SELECT C. UPDATE D. DELETE 3.创建触发器时,FOR EACH ROW表示( ) A. 表级触发 B. 行级触发 C. 数据库级触发 D. 仅执行一次 4.关于触发器的使用原则,错误的是( ) A. 触发器可以嵌套使用 B. 触发器不能修改其关联的表 C. 触发器执行语句需原子性 D. 每个表的每个事件只能有一个触发器 5.以下查看所有触发器的命令是( ) A. SHOW TRIGGERS; B. SHOW CREATE TRIGGER; C. SELECT * FROM TRIGGERS; D. DESC TRIGGER; 6.事件的调度参数 EVERY 1 DAY 表示( ) A. 每秒执行一次 B. 每天执行一次 C. 每月执行一次 D. 仅执行一次 7.永久开启事件调度器需修改( ) A. SET GLOBAL event_scheduler=ON; B. 修改配置文件 my.ini C. ALTER EVENT 事件名 ENABLE; D. SHOW VARIABLES LIKE 'event_scheduler'; 8.删除触发器的正确语法是( ) A. DELETE TRIGGER 触发器名; B. TRUNCATE TRIGGER 触发器名; C. REMOVE TRIGGER 触发器名; D. DROP TRIGGER 触发器名; 9.以下关于事件的描述,正确的是( ) A. 事件调度器默认关闭 B. 事件可以手动调用 C. 事件支持每分钟执行一次 D. 事件优先级高于触发器 10.创建事件时,ON COMPLETION PRESERVE的作用是( ) A. 事件执行后自动删除 B. 事件仅执行一次 C. 事件永不执行 D. 事件执行后保留定义 二、判断题 1.触发器可以引用其他表的列。( ) 2.事件可以精确到每秒执行一次。( ) 3.BEFORE INSERT触发器用于在插入数据后执行逻辑。( ) 4.同一表的同一事件可以定义多个触发器。( ) 5.SHOW CREATE EVENT 事件名;可以查看事件的定义文本。( ) 6.事件调度器的状态可通过SHOW PROCESSLIST;查看。( ) 7.触发器可以用于执行DDL语句。( ) 8.ALTER EVENT可以修改事件的执行时间表。( ) 9.删除事件时,IF EXISTS可以避免因事件不存在报错。( ) 10.触发器可以通过ROLLBACK撤销已提交的事务。( ) 三、命令题 1.创建名为trg_before_insert的触发器,在orders表插入数据前检查amount是否大于0。 2.查看事件event_daily_report的详细定义。 3.修改事件event_clean_log,将其改为每周执行一次。 4.永久开启MySQL事件调度器。 5.删除触发器trg_after_update。 学科网(北京)股份有限公司 $$

资源预览图

专题十 触发器、事件和事件调度器(练习)-《数据库原理与应用技术》高考备考讲练测(河北省)
1
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。