第71练 项目九 调用和修改存储过程《数据库原理与应用技术-MySQL》(河北科学技术出版社)一课一练(河北省)

2026-05-07
| 2份
| 7页
| 40人阅读
| 0人下载

内容正文:

编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第71练,内容是调用和修改存储过程。 《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第71练 调用和修改存储过程 一、单项选择题 1. 已知存在无参数存储过程proc_get_all_student,下列调用该存储过程的语法正确的是( ) A. CALL proc_get_all_student; B. CALL proc_get_all_student(); C. EXEC proc_get_all_student(); D. SELECT proc_get_all_student(); 【答案】B 【解析】MySQL 调用存储过程必须使用CALL关键字,且无论是否有参数,都必须加括号()。A 错误:无参数存储过程也必须加括号;C 错误:EXEC是 SQL Server 的调用关键字,MySQL 不支持;D 错误:不能用SELECT调用存储过程。 2.已知存在带 IN 参数的存储过程proc_get_student_by_age(IN min_age INT),下列调用语法正确的是( ) A. CALL proc_get_student_by_age(18); B. CALL proc_get_student_by_age IN 18; C. CALL proc_get_student_by_age(min_age=18); D. CALL proc_get_student_by_age('18'); 【答案】A 【解析】IN 参数调用直接传入对应类型的值即可,不需要加参数名或IN关键字。B 错误:多余IN关键字;C 错误:MySQL 不支持命名参数调用;D 错误:数值类型参数不需要加单引号。 3.已知存在带 OUT 参数的存储过程proc_get_student_count(OUT total INT),下列调用语法正确的是( ) A. CALL proc_get_student_count(total); B. CALL proc_get_student_count(@total); C. SET @total=CALL proc_get_student_count(); D. SELECT proc_get_student_count() INTO @total; 【答案】B 【解析】OUT 参数必须使用 ** 用户变量(以 @开头)** 接收返回值,不能直接使用普通变量。A 错误:未使用 @变量;C 错误:赋值语法错误,不能用SET 变量=CALL ...;D 错误:不能用SELECT ... INTO调用存储过程。 4.已知存在带 INOUT 参数的存储过程proc_add_ten(INOUT num INT),下列调用语法正确的是( ) A. SET @num=5; CALL proc_add_ten(@num); B. CALL proc_add_ten(5); C. CALL proc_add_ten(@num=5); D. SET num=5; CALL proc_add_ten(num); 【答案】A 【解析】INOUT 参数需要先给用户变量赋值,再传入存储过程,调用后变量值会被修改。B 错误:直接传入常量,无法接收返回值;C 错误:不支持命名参数赋值;D 错误:未使用 @用户变量。 5.已知数据库school中存在存储过程proc_get_class_student(IN c_id INT),下列跨库调用语法正确的是( ) A. CALL school.proc_get_class_student(1); B. CALL proc_get_class_student FROM school(1); C. CALL school.proc_get_class_student IN 1; D. CALL school.proc_get_class_student(1) FROM school; 【答案】A 【解析】跨库调用存储过程的标准格式为CALL 数据库名.存储过程名(参数列表)。B、C、D 错误:无FROM/IN关键字,语法冗余。 6.已知存在存储过程proc_daily_clean,需修改其注释为 “每日凌晨清理 7 天前日志”,下列语法正确的是( ) A. ALTER PROCEDURE proc_daily_clean COMMENT '每日凌晨清理7天前日志'; B. ALTER PROCEDURE proc_daily_clean SET COMMENT='每日凌晨清理7天前日志'; C. ALTER PROCEDURE proc_daily_clean COMMENT=每日凌晨清理7天前日志; D. UPDATE PROCEDURE proc_daily_clean SET COMMENT='每日凌晨清理7天前日志'; 【答案】A 【解析】修改存储过程注释的标准语法为ALTER PROCEDURE 存储过程名 COMMENT '注释内容'。B 错误:多余SET关键字;C 错误:注释未加单引号且多了等号;D 错误:MySQL 无UPDATE PROCEDURE语法。 7.已知存在存储过程proc_get_user_info,需修改其 SQL 安全特性为SQL SECURITY INVOKER,下列语法正确的是( ) A. ALTER PROCEDURE proc_get_user_info SQL SECURITY INVOKER; B. ALTER PROCEDURE proc_get_user_info SET SQL SECURITY=INVOKER; C. ALTER PROCEDURE proc_get_user_info SECURITY SQL INVOKER; D. ALTER PROCEDURE proc_get_user_info SQL SECURITY=INVOKER; 【答案】A 【解析】修改存储过程 SQL 安全特性的标准语法为ALTER PROCEDURE 存储过程名 SQL SECURITY DEFINER|INVOKER。B、D 错误:多余SET和等号;C 错误:SQL SECURITY顺序颠倒。 8.下列关于修改存储过程的 SQL 语句中,存在核心语法错误的是( ) A. ALTER PROCEDURE proc_test COMMENT '测试存储过程'; B. ALTER PROCEDURE proc_test SQL SECURITY INVOKER; C. ALTER PROCEDURE proc_test(IN a INT) BEGIN SELECT a; END; D. ALTER PROCEDURE proc_test CONTAINS SQL; 【答案】C 【解析】MySQL 中ALTER PROCEDURE 只能修改存储过程的注释、SQL 安全特性、SQL 特性等属性,不能修改参数列表和存储过程体。若需修改参数或过程体,只能先删除再重建。A、B、D 均为合法的修改操作;C 错误:试图修改参数列表和过程体。 9.已知存在存储过程proc_get_order_stats,需同时修改其 SQL 安全特性为调用者权限和注释为 “统计订单数据”,下列语法完全正确的是( ) A. ALTER PROCEDURE proc_get_order_stats SQL SECURITY INVOKER COMMENT '统计订单数据'; B. ALTER PROCEDURE proc_get_order_stats SET SQL SECURITY=INVOKER COMMENT='统计订单数据'; C. ALTER PROCEDURE proc_get_order_stats '统计订单数据' SQL SECURITY INVOKER; D. ALTER PROCEDURE proc_get_order_stats(IN start_date DATE) SQL SECURITY INVOKER COMMENT '统计订单数据'; 【答案】A 【解析】ALTER PROCEDURE 可同时修改多个属性,顺序为SQL SECURITY在前、COMMENT在后;不能加 SET 和等号;绝对不能修改参数列表。B 错误:加了冗余的 SET 和等号;C 错误:属性顺序颠倒;D 错误:试图修改参数列表,违反 ALTER PROCEDURE 核心限制。 10.下列关于修改存储过程的 SQL 语句中,唯一合法的是( ) A. ALTER PROCEDURE proc_test RENAME TO proc_new_test; B. ALTER PROCEDURE proc_test BEGIN SELECT '新的存储过程体'; END; C. ALTER PROCEDURE proc_test NO SQL; D. ALTER PROCEDURE proc_test(IN a INT, OUT b INT); 【答案】C 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第71练,内容是调用和修改存储过程。 《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第71练 调用和修改存储过程 一、单项选择题 1. 已知存在无参数存储过程proc_get_all_student,下列调用该存储过程的语法正确的是( ) A. CALL proc_get_all_student; B. CALL proc_get_all_student(); C. EXEC proc_get_all_student(); D. SELECT proc_get_all_student(); 2.已知存在带 IN 参数的存储过程proc_get_student_by_age(IN min_age INT),下列调用语法正确的是( ) A. CALL proc_get_student_by_age(18); B. CALL proc_get_student_by_age IN 18; C. CALL proc_get_student_by_age(min_age=18); D. CALL proc_get_student_by_age('18'); 3.已知存在带 OUT 参数的存储过程proc_get_student_count(OUT total INT),下列调用语法正确的是( ) A. CALL proc_get_student_count(total); B. CALL proc_get_student_count(@total); C. SET @total=CALL proc_get_student_count(); D. SELECT proc_get_student_count() INTO @total; 4.已知存在带 INOUT 参数的存储过程proc_add_ten(INOUT num INT),下列调用语法正确的是( ) A. SET @num=5; CALL proc_add_ten(@num); B. CALL proc_add_ten(5); C. CALL proc_add_ten(@num=5); D. SET num=5; CALL proc_add_ten(num); 5.已知数据库school中存在存储过程proc_get_class_student(IN c_id INT),下列跨库调用语法正确的是( ) A. CALL school.proc_get_class_student(1); B. CALL proc_get_class_student FROM school(1); C. CALL school.proc_get_class_student IN 1; D. CALL school.proc_get_class_student(1) FROM school; 6.已知存在存储过程proc_daily_clean,需修改其注释为 “每日凌晨清理 7 天前日志”,下列语法正确的是( ) A. ALTER PROCEDURE proc_daily_clean COMMENT '每日凌晨清理7天前日志'; B. ALTER PROCEDURE proc_daily_clean SET COMMENT='每日凌晨清理7天前日志'; C. ALTER PROCEDURE proc_daily_clean COMMENT=每日凌晨清理7天前日志; D. UPDATE PROCEDURE proc_daily_clean SET COMMENT='每日凌晨清理7天前日志'; 7.已知存在存储过程proc_get_user_info,需修改其 SQL 安全特性为SQL SECURITY INVOKER,下列语法正确的是( ) A. ALTER PROCEDURE proc_get_user_info SQL SECURITY INVOKER; B. ALTER PROCEDURE proc_get_user_info SET SQL SECURITY=INVOKER; C. ALTER PROCEDURE proc_get_user_info SECURITY SQL INVOKER; D. ALTER PROCEDURE proc_get_user_info SQL SECURITY=INVOKER; 8.下列关于修改存储过程的 SQL 语句中,存在核心语法错误的是( ) A. ALTER PROCEDURE proc_test COMMENT '测试存储过程'; B. ALTER PROCEDURE proc_test SQL SECURITY INVOKER; C. ALTER PROCEDURE proc_test(IN a INT) BEGIN SELECT a; END; D. ALTER PROCEDURE proc_test CONTAINS SQL; 9.已知存在存储过程proc_get_order_stats,需同时修改其 SQL 安全特性为调用者权限和注释为 “统计订单数据”,下列语法完全正确的是( ) A. ALTER PROCEDURE proc_get_order_stats SQL SECURITY INVOKER COMMENT '统计订单数据'; B. ALTER PROCEDURE proc_get_order_stats SET SQL SECURITY=INVOKER COMMENT='统计订单数据'; C. ALTER PROCEDURE proc_get_order_stats '统计订单数据' SQL SECURITY INVOKER; D. ALTER PROCEDURE proc_get_order_stats(IN start_date DATE) SQL SECURITY INVOKER COMMENT '统计订单数据'; 10.下列关于修改存储过程的 SQL 语句中,唯一合法的是( ) A. ALTER PROCEDURE proc_test RENAME TO proc_new_test; B. ALTER PROCEDURE proc_test BEGIN SELECT '新的存储过程体'; END; C. ALTER PROCEDURE proc_test NO SQL; D. ALTER PROCEDURE proc_test(IN a INT, OUT b INT); 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

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