第九章 MySQL数据库编程《数据库原理与应用技术-MySQL》(河北科学技术出版社)章节过关卷

2025-07-22
| 2份
| 12页
| 268人阅读
| 1人下载

内容正文:

《数据库原理与应用技术-MySQL》河北科学技术出版社 第九章 MySQL数据库编程 考试时间:90分钟 满分:100分 姓名 班级 学号 1. 单项选择题(本题共25小题,每题2分,共50分) 1、下列选项中,哪一项不是触发器的事件( )。 A.INSERT B.UPDATE C. CREATE D.DELETE 【答案】C 【解析】触发器的事件有3个,分别是INSERT,DELETE,INSERT。 2、关于触发器的使用原则,下列说法正确的是( ) A.触发器可以嵌套使用 B.触发器的执行效率高 C.触发器的执行语句必须是原子性的 D.触发器可以包含多个SQL语句 【答案】C 【解析】触发器不能嵌套使用,执行效率低,不能包含多个SQL语句,执行语句必须是原子性的。 3、下列选项中,( )关键字是在更改表中某一行数据时激活的触发器。 A.INSERT B.UPDATE C. CREATE D.DELETE 【答案】B 【解析】UPDATE是更新触发器的关键字。 4、关于触发器的优点,下列说法不正确的是( )。 A. 自动执行 B. 级联更新 C. 相对不灵活 D. 强化约束 【答案】C 【解析】相对不灵活,一旦触发马上执行,是触发器的缺点,而不是优点 5、定义触发器的目的是为了( ) A. 提高数据查询速度 B.加强数据安全性 C. 加强数据共享性 D.保证表间数据完整性 【答案】D 【解析】定义触发器可以保证数据的完整性。 6、关于事件的描述,下列说法不正确的是( ) A.事件是MySQL在相应的时刻调用的过程式数据对象 B.事件与触发器不同,事件称为临时性触发器 C.事件可以调用一次,也可以周期性地启动 D.事件由一个特定的线程来管理 【答案】B 【解析】事件与触发器类似,称为临时性触发器。 7、下列选项中,用于创建事件的命令是( )。 A.CREATE TABLE B.CREATE EVENT C.CREATE TRIGGER D.CREATE VIEW 【答案】B 【解析】CREATE EVENT 命令用于创建事件 8、下面的代码用于创建一个在删除数据前触发的触发器,横线上所缺代码为( )。 CREATE TRIGGER bookinfo_deleted_ ON tb_bookinfo FOR EACH ROW INSERT INTO tb_booklog (event,logtime) values('删除了一条图书信息',now()); A. BEFORE DELETE B. AFTER DELETE C. BEFORE INSERT D. AFTER INSERT 【答案】A 【解析】创建一个在删除数据前触发的触发器应该是:BEFORE DELETE 9.可临时关闭事件e_test的SQL语句为( )。 A. ALTER EVENT e_test ENABLE B. ALTER EVENT e_test DISABLE C. ALTER EVENT e_test DROP D. ALTER EVENT e_test DELETE 【答案】B 【解析】临时关闭事件的语句是:ALTER EVENT 事件名 DISABLE;,故选B。 10、触发器可以创建在( )中。 A.表 B.过程 C.数据过程 D.函数发器。 【答案】A 【解析】触发器是建在永久表上的,故选择A。 11、在INSERT触发器中,可以使用( )引用。 A.OLD. B.NEW. C.OLD.和NEW. D.OLD()和NEW() 【答案】B 【解析】在INSERT触发器中,可以使用NEW.列名来引用。 12、执行下列( )语句,不能查看触发器的信息。 A.SELECT*FROM triggers; B. SHOW TRIGGERS; C.SHOW CREATE TRIGGER<触发器名>; D.SELECT*FROM information_schema.triggers; 【答案】A 【解析】B项可以查看所有触发器信息,C项可以查看触发器的定义信息D项从表中TRIGGERS表中查看触发器,应为triggers表在Information_schema系统数据库中,需要注明所属数据库,故A错误。 13、MySQL 中的事件是在相应的时刻调用的过程式数据库对象,以下说法错误的是( )。 A.事件可以调用一次,也可以周期性的启动 B.事件由一个特定的线程来管理,称为“事件调度器” C.事件依赖于外部程序,来定时对数据进行操作 D.事件与触发器相似,也称为临时性触发器 【答案】C 【解析】事件不再依赖于外部程序,MySQL的事件调度器,可以精确到每秒中执行的任务。 14、MySQL事件中这个参数'event_scheduler'设置不能表示临时开启的( )。 A.SET GLOBAL event_scheduler=ON; B. SET @@global.event_scheduler=ON; C.SET GLOBAL event_scheduler=1; D.SET @@global.event_scheduler=0; 【答案】D 【解析】表示临时开启时,EVENT_SCHEDULER的值时ON或1,故选D。 15、关于MySQL事件和事件调度器,以下哪个说法是正确的?( ) A.事件调度器只能执行一次事件 B.事件调度器由操作系统的计划任务来管理 C.可以通过SHOW EVENTS语句查看所有事件 D.事件调度器在MySQL服务器启动时默认启用 【答案】C 【解析】A项错误,事件调度器可以执行一次,也周期性启动。B项错误,事件由MySQL事件调度器来管理,D项事件调度器默认时关闭的。 16、在存储过程中,哪个语句用于退出循环?( ) A. LEAVE B. BREAK C.EXIT D.CONTINUE 【答案】A 【解析】在存储过程中,LEAVE用于退出循环,故选A。 17、在存储过程中,可以使用哪种类型的循环?( ) A.FOR B.WHILE C. REPEAT...UNTIL D.B and C 【答案】D 【解析】在存储过程中,循环包括:LOOP 、REPEAT...UNTIL、WHILE。 18、在MySQL中,如何查看存储过程的定义?( ) A.SHOW CREATE PROCEDURE B. DESCRIBE PROCEDURE C.EXPLAIN PROCEDURE D.VIEW PROCEDURE 【答案】A 【解析】SHOW CREATE PROCEDURE 可以查看存储过程的定义,故选C。 19、如何修改一个已存在的存储过程的主体和参数?( ) A.使用ALTER PROCEDURE语句 B.先删除后重新创建 C.直接在原有存储过程上编辑 D.使用UPDATE PROCEDURE语句 【答案】A 【解析】修改存储过程使用ALTER PROCEDURE 20、存储过程和函数的定义存放在( )数据库中。 A.Performance_schema B.Information_schema C.MySQL D.XSCJ 【答案】C 【解析】存储过程和函数存放在mysql的系统数据库中。 二、填空题(本题共10小题,每题2分,共20分) 1、创建触发器使用的关键命令是 。 【答案】CREATE TRIGGERS 2、查看当前数据库的所有触发器的命令为 ___________。 【答案】SHOW TRIGGERS 3、在创建触发器的命令中,________关键字指行级触发,每一行都要激活触发器的动作。【答案】FOR EACH ROW 4、如果要从数据库中删除触发器,应该使用SQL语言的命令: 。 【答案】DROP TRIGGER 5、每个表的每个事件每次只允许创建一个触发器,因此每个表最多支持________种触发器。 【答案】六 6、在MySQL中,用 定义存储过程 【答案】CREATE PROCEDURE 7、存储过程名为“my_procedure”的,调用存储过程的命令: 【答案】CALL my_procedure( ); 9、在存储过程中,声明变量的关键字是 。 【答案】DECLARE 10、要获取存储函数的定义,可以使用 命令。 【答案】唯一 3、 判断题(本题共10小题,每题2分,共20分) 1、在Update触发器中,可以使用NEW.列名和OLD.列名来引用。( ) 【答案】正确。在Update触发器中,可以使用NEW.列名和OLD.列名来引用。 2、事件只能在存储过程中定义和调用。( ) 【答案】错误。事件时根据调度事件来启动的,而不是只能在存储过程中定义和调用的。 3、DROP EVENT语句用于删除不再需要的事件。( ) 【答案】正确。DROP EVENT就是专门用来删除已创建和不再需要的事件。 4、事件的定义中必须包含STARTS和ENDS子句来指定事件的有效期。( ) 【答案】错误。在数据库事件定义里,STARTS(指定开始时间)和 ENDS(指定结束时间 )子句是可选的,不是必须包含,事件可按需灵活设置是否用它们界定有效期,所以该说法错误。 5、存储过程是一组为了完成特定任务而预先编写的SQL语句集合。( ) 【答案】正确。存储过程的含义是一组为了完成特定任务而预先编写的SQL语句集。 6、OUT类型的参数在存储过程执行后不会有值。( ) 【答案】错误。OUT类型参数就是用于在存储过程执行后向外传值,执行后有值。 7、使用存储过程可以减少网络流量,因为多个SQL语句可以一次性发送到服务 器执行。( ) 【答案】正确。储过程把多SQL语句打包,一次网络调用就能执行,减少通信次数,降低流量 。 8、如果存储函数没有明确的返回值类型,MySQL会默认其返回类型为整型。( ) 【答案】错误。存储函数没有明确的返回值类型,MySQL会默认其返回类型为字符类型。 9、存储函数可以在SQL语句中直接使用,就像内置函数一样。( ) 【答案】正确。存储函数可像内置函数(如SUM)一样,直接用在SQL语句(如 SELECT 语句 )里参与运算、查询。 10、在MySQL中,存储函数不能包含输出参数。( ) 【答案】正确。MySQL存储函数设计上侧重返回单一值,不能定义输出参数,和存储过程有区别。 四、命令题(本大题共3小题,共8分) 1、在“books”表上创建一个触发器“books_trigger”,要求插入的图书的价格要小于30,如果插入图书的价格大于30,则在插入前将记录的“price”的字段值修改为30。(4分) 【答案】 CREATE TRIGGER books_trigger BEFORE INSERT ON books FOR EACH ROW BEGIN IF new.price>30 THEN SET new.price =30; END IF ; END 1. 查看当前数据库中books_trigger触发器信息。(2分) 【答案】 SHOW CREATE TRIGGER books_trigger 1. 删除触发器book_trigger。(2分) 【答案】 DROP TRIGGER books_trigger 五、程序填空(本大题共4空,每空3分,共12分) 使用传参调用方式创建存储过程param_pro,要求在调用时能够通过传入参 id删除成绩表中该学生的成绩,查询成绩中的最高分并输出,然后通过传人参数p_gra查询高于该值成绩总人数并通过p_gra输出。 创建程序如下: CREATE ⑴ param_pro(IN id INT, OUT num INT, INOUT P_gra INT) BEGIN DELETE FROM score WHERE StuID = ⑵ ; SELECT max(Grade) FROM score INTO ⑶ ; SELECT count(*) INTO p_gra FROM score WHERE Grade >P_gra ; END 调用程序如下: SET @p_gra=85; ⑷ Param_pro(20250108,@num,@p_gra); Select @num,@p_gra; 【答案】 (1) PROCEDURE (2)id (3)num (4)call 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 《数据库原理与应用技术-MySQL》河北科学技术出版社 第九章 MySQL数据库编程 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共20小题,每题2分,共40分) 1、下列选项中,哪一项不是触发器的事件( )。 A.INSERT B.UPDATE C. CREATE D.DELETE 2、关于触发器的使用原则,下列说法正确的是( ) A.触发器可以嵌套使用 B.触发器的执行效率高 C.触发器的执行语句必须是原子性的 D.触发器可以包含多个SQL语句 3、下列选项中,( )关键字是在更改表中某一行数据时激活的触发器。 A.INSERT B.UPDATE C. CREATE D.DELETE 4、关于触发器的优点,下列说法不正确的是( )。 A. 自动执行 B. 级联更新 C. 相对不灵活 D. 强化约束 5、定义触发器的目的是为了( ) A. 提高数据查询速度 B.加强数据安全性 C. 加强数据共享性 D.保证表间数据完整性 6、关于事件的描述,下列说法不正确的是( ) A.事件是MySQL在相应的时刻调用的过程式数据对象 B.事件与触发器不同,事件称为临时性触发器 C.事件可以调用一次,也可以周期性地启动 D.事件由一个特定的线程来管理 7、下列选项中,用于创建事件的命令是( )。 A.CREATE TABLE B.CREATE EVENT C.CREATE TRIGGER D.CREATE VIEW 8、下面的代码用于创建一个在删除数据前触发的触发器,横线上所缺代码为( )。 CREATE TRIGGER bookinfo_deleted_ ON tb_bookinfo FOR EACH ROW INSERT INTO tb_booklog (event,logtime) values('删除了一条图书信息',now()); A. BEFORE DELETE B. AFTER DELETE C. BEFORE INSERT D. AFTER INSERT 9.可临时关闭事件e_test的SQL语句为( )。 A. ALTER EVENT e_test ENABLE B. ALTER EVENT e_test DISABLE C. ALTER EVENT e_test DROP D. ALTER EVENT e_test DELETE 10、触发器可以创建在( )中。 A.表 B.过程 C.数据过程 D.函数发器。 11、在INSERT触发器中,可以使用( )引用。 A.OLD. B.NEW. C.OLD.和NEW. D.OLD()和NEW() 12、执行下列( )语句,不能查看触发器的信息。 A.SELECT*FROM triggers; B. SHOW TRIGGERS; C.SHOW CREATE TRIGGER<触发器名>; D.SELECT*FROM information_schema.triggers; 13、MySQL 中的事件是在相应的时刻调用的过程式数据库对象,以下说法错误的是( )。 A.事件可以调用一次,也可以周期性的启动 B.事件由一个特定的线程来管理,称为“事件调度器” C.事件依赖于外部程序,来定时对数据进行操作 D.事件与触发器相似,也称为临时性触发器 14、MySQL事件中这个参数'event_scheduler'设置不能表示临时开启的。( ) A.SET GLOBAL event_scheduler=ON; B. SET @@global.event_scheduler=ON; C.SET GLOBAL event_scheduler=1; D.SET @@global.event_scheduler=0; 15、关于MySQL事件和事件调度器,以下哪个说法是正确的?( ) A.事件调度器只能执行一次事件 B.事件调度器由操作系统的计划任务来管理 C.可以通过SHOW EVENTS语句查看所有事件 D.事件调度器在MySQL服务器启动时默认启用 16、在存储过程中,哪个语句用于退出循环?( ) A. LEAVE B. BREAK C.EXIT D.CONTINUE 17、在存储过程中,可以使用哪种类型的循环?( ) A.FOR B.WHILE C. REPEAT...UNTIL D.B and C 18、在MySQL中,如何查看存储过程的定义?( ) A.SHOW CREATE PROCEDURE B. DESCRIBE PROCEDURE C.EXPLAIN PROCEDURE D.VIEW PROCEDURE 19、如何修改一个已存在的存储过程的主体和参数?( ) A.使用ALTER PROCEDURE语句 B.先删除后重新创建 C.直接在原有存储过程上编辑 D.使用UPDATE PROCEDURE语句 20、存储过程和函数的定义存放在( )数据库中。 A.Performance_schema B.Information_schema C.MySQL D.XSCJ 二、填空题(本题共10小题,每题2分,共20分) 1、创建触发器使用的关键命令是 。 2、查看当前数据库的所有触发器的命令为 ___________。 3、在创建触发器的命令中,________关键字指行级触发,每一行都要激活触发器的动作。 4、如果要从数据库中删除触发器,应该使用SQL语言的命令: 。 5、每个表的每个事件每次只允许创建一个触发器,因此每个表最多支持________种触发器。 6、在MySQL中,用 定义存储过程 7、存储过程名为“my_procedure”的,调用存储过程的命令: 9、在存储过程中,声明变量的关键字是 。 10、要获取存储函数的定义,可以使用 命令。 三、判断题(本题共10小题,每题2分,共20分) 1、在Update触发器中,可以使用NEW.列名和OLD.列名来引用。( ) 2、事件只能在存储过程中定义和调用。( ) 3、DROP EVENT语句用于删除不再需要的事件。( ) 4、事件的定义中必须包含STARTS和ENDS子句来指定事件的有效期。( ) 5、存储过程是一组为了完成特定任务而预先编写的SQL语句集合。( ) 6、OUT类型的参数在存储过程执行后不会有值。( ) 7、使用存储过程可以减少网络流量,因为多个SQL语句可以一次性发送到服务 器执行。( ) 8、如果存储函数没有明确的返回值类型,MySQL会默认其返回类型为整型。( ) 9、存储函数可以在SQL语句中直接使用,就像内置函数一样。( ) 10、在MySQL中,存储函数不能包含输出参数。( ) 四、命令题(本大题共3小题,共8分) 1、已在“books”表上创建一个触发器“books_trigger”,要求插入的图书的价格要小于30,如果插入图书的价格大于30,则在插入前将记录的“price”的字段值修改为30。(4分) 2、查看当前数据库中books_trigger触发器信息。(2分) 3、删除触发器book_trigger。(2分) 五、程序填空(本大题共4空,每空3分,共12分) 使用传参调用方式创建存储过程param_pro,要求在调用时能够通过传入参 id删除成绩表中该学生的成绩,查询成绩中的最高分并输出,然后通过传人参数p_gra查询高于该值成绩总人数并通过p_gra输出。 创建程序如下: CREATE ⑴ param_pro(IN id INT, OUT num INT, INOUT P_gra INT) BEGIN DELETE FROM score WHERE StuID = ⑵ ; SELECT max(Grade) FROM score INTO ⑶ ; SELECT count(*) INTO p_gra FROM score WHERE Grade >P_gra ; END 调用程序如下: SET @p_gra=85; ⑷ Param_pro(20250108,@num,@p_gra); Select @num,@p_gra; 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

第九章 MySQL数据库编程《数据库原理与应用技术-MySQL》(河北科学技术出版社)章节过关卷
1
第九章 MySQL数据库编程《数据库原理与应用技术-MySQL》(河北科学技术出版社)章节过关卷
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。