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