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

2026-05-07
| 2份
| 9页
| 46人阅读
| 0人下载

内容正文:

编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第70练,内容是认识和创建存储过程。 《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第70练 认识和创建存储过程 一、单项选择题 1. 创建一个无参数存储过程proc_get_student,查询所有学生信息,下列语法完全正确的是( ) A. CREATE PROCEDURE proc_get_student() BEGIN SELECT * FROM student; END; B. DELIMITER // CREATE PROCEDURE proc_get_student() BEGIN SELECT * FROM student; END // DELIMITER ; C. DELIMITER ; CREATE PROCEDURE proc_get_student() BEGIN SELECT * FROM student; END // DELIMITER // D. DELIMITER // CREATE PROCEDURE proc_get_student BEGIN SELECT * FROM student; END // DELIMITER ; 2.创建一个带IN 输入参数的存储过程proc_get_student_by_id,根据学号查询学生信息,下列语法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_get_student_by_id(IN s_id INT) BEGIN SELECT * FROM student WHERE id=s_id; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_get_student_by_id(s_id INT IN) BEGIN SELECT * FROM student WHERE id=s_id; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_get_student_by_id(INPUT s_id INT) BEGIN SELECT * FROM student WHERE id=s_id; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_get_student_by_id(IN s_id) BEGIN SELECT * FROM student WHERE id=s_id; END // DELIMITER ; 3.创建一个带OUT 输出参数的存储过程proc_get_student_count,统计学生总数并通过参数返回,下列语法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_get_student_count(OUT count INT) BEGIN SELECT COUNT(*) INTO count FROM student; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_get_student_count(count INT OUT) BEGIN SELECT COUNT(*) INTO count FROM student; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_get_student_count(OUT count INT) BEGIN SET count=SELECT COUNT(*) FROM student; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_get_student_count(OUT count INT) BEGIN SELECT COUNT(*) FROM student INTO count; END // DELIMITER ; 4.创建一个带INOUT 输入输出参数的存储过程proc_add_num,将传入的数值加 10 后返回,下列语法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_add_num(INOUT num INT) BEGIN SET num=num+10; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_add_num(IN OUT num INT) BEGIN SET num=num+10; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_add_num(INOUT num) BEGIN SET num=num+10; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_add_num(INOUT num INT) BEGIN num=num+10; END // DELIMITER ; 5.创建存储过程时添加存在性检查,避免重复创建报错,下列语法正确的是( ) A. DELIMITER // CREATE IF NOT EXISTS PROCEDURE proc_test() BEGIN SELECT 'Hello World'; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE IF NOT EXISTS proc_test() BEGIN SELECT 'Hello World'; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_test() IF NOT EXISTS BEGIN SELECT 'Hello World'; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE EXISTS proc_test() BEGIN SELECT 'Hello World'; END // DELIMITER ; 6.存储过程中添加注释说明,下列写法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_get_student_by_age(IN min_age INT) COMMENT '查询年龄大于指定值的学生' BEGIN SELECT * FROM student WHERE age>min_age; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_get_student_by_age(IN min_age INT) BEGIN -- 查询年龄大于指定值的学生 SELECT * FROM student WHERE age>min_age; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_get_student_by_age(IN min_age INT) COMMENT=查询年龄大于指定值的学生 BEGIN SELECT * FROM student WHERE age>min_age; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_get_student_by_age(IN min_age INT) COMMENT "查询年龄大于指定值的学生" BEGIN SELECT * FROM student WHERE age>min_age; END // DELIMITER ; 7.创建一个包含多条 SQL 语句的存储过程proc_delete_old_log,删除 7 天前的日志并记录删除数量,下列语法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_delete_old_log(OUT delete_count INT) BEGIN DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY; SELECT ROW_COUNT() INTO delete_count; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_delete_old_log(OUT delete_count INT) DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY; SELECT ROW_COUNT() INTO delete_count; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_delete_old_log(OUT delete_count INT) BEGIN DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY SELECT ROW_COUNT() INTO delete_count END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_delete_old_log(OUT delete_count INT) ( DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY; SELECT ROW_COUNT() INTO delete_count; ) // DELIMITER ; 8.下列关于存储过程参数的写法中,存在核心语法错误的是( ) A. CREATE PROCEDURE proc_test(IN a INT, OUT b INT, INOUT c INT) B. CREATE PROCEDURE proc_test(IN a INT, IN b INT) C. CREATE PROCEDURE proc_test(OUT a INT, IN b INT) D. CREATE PROCEDURE proc_test(IN a INT OUT b INT) 9.创建存储过程时,下列关于存储过程名称的写法正确的是( ) A. CREATE PROCEDURE 'proc_get_student'() B. CREATE PROCEDURE proc get student() C. CREATE PROCEDURE proc_get_student_123() D. CREATE PROCEDURE SELECT() 10.已知数据表:商品表goods(商品id g_id,商品名g_name,库存stock),库存日志表stock_log(日志id log_id AUTO_INCREMENT,商品id g_id,变动数量change_num,操作时间log_time)。创建一个带存在性检查的存储过程proc_add_stock,接收商品 ID 和要增加的库存数量(IN 参数),返回更新后的总库存(OUT 参数),同时自动记录库存变动日志,添加注释 “增加商品库存并记录日志”,下列语法完全正确的是( ) A. DELIMITER // CREATE PROCEDURE IF NOT EXISTS proc_add_stock(IN p_gid INT, IN p_num INT, OUT p_total INT) COMMENT '增加商品库存并记录日志' BEGIN UPDATE goods SET stock=stock+p_num WHERE g_id=p_gid; SELECT stock INTO p_total FROM goods WHERE g_id=p_gid; INSERT INTO stock_log(g_id,change_num,log_time) VALUES(p_gid,p_num,NOW()); END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE IF NOT EXISTS proc_add_stock(IN p_gid INT, IN p_num INT, OUT p_total INT) COMMENT='增加商品库存并记录日志' BEGIN UPDATE goods SET stock=stock+p_num WHERE g_id=p_gid; SELECT stock INTO p_total FROM goods WHERE g_id=p_gid; INSERT INTO stock_log(g_id,change_num,log_time) VALUES(p_gid,p_num,NOW()); END // DELIMITER // C. DELIMITER // CREATE PROCEDURE IF NOT EXISTS proc_add_stock(IN p_gid INT, IN p_num INT, OUT p_total INT) COMMENT '增加商品库存并记录日志' BEGIN UPDATE goods SET stock=stock+p_num WHERE g_id=p_gid; SET p_total=SELECT stock FROM goods WHERE g_id=p_gid; INSERT INTO stock_log(g_id,change_num,log_time) VALUES(p_gid,p_num,NOW()); END // DELIMITER ; D. DELIMITER // CREATE IF NOT EXISTS PROCEDURE proc_add_stock(IN p_gid INT, IN p_num INT, OUT p_total INT) COMMENT '增加商品库存并记录日志' BEGIN UPDATE goods SET stock=stock+p_num WHERE g_id=p_gid; SELECT stock INTO p_total FROM goods WHERE g_id=p_gid; INSERT INTO stock_log(g_id,change_num,log_time) VALUES(p_gid,p_num,NOW()); END // DELIMITER ; 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第70练,内容是认识和创建存储过程。 《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第70练 认识和创建存储过程 一、单项选择题 1. 创建一个无参数存储过程proc_get_student,查询所有学生信息,下列语法完全正确的是( ) A. CREATE PROCEDURE proc_get_student() BEGIN SELECT * FROM student; END; B. DELIMITER // CREATE PROCEDURE proc_get_student() BEGIN SELECT * FROM student; END // DELIMITER ; C. DELIMITER ; CREATE PROCEDURE proc_get_student() BEGIN SELECT * FROM student; END // DELIMITER // D. DELIMITER // CREATE PROCEDURE proc_get_student BEGIN SELECT * FROM student; END // DELIMITER ; 【答案】B 2.创建一个带IN 输入参数的存储过程proc_get_student_by_id,根据学号查询学生信息,下列语法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_get_student_by_id(IN s_id INT) BEGIN SELECT * FROM student WHERE id=s_id; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_get_student_by_id(s_id INT IN) BEGIN SELECT * FROM student WHERE id=s_id; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_get_student_by_id(INPUT s_id INT) BEGIN SELECT * FROM student WHERE id=s_id; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_get_student_by_id(IN s_id) BEGIN SELECT * FROM student WHERE id=s_id; END // DELIMITER ; 【答案】A 3.创建一个带OUT 输出参数的存储过程proc_get_student_count,统计学生总数并通过参数返回,下列语法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_get_student_count(OUT count INT) BEGIN SELECT COUNT(*) INTO count FROM student; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_get_student_count(count INT OUT) BEGIN SELECT COUNT(*) INTO count FROM student; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_get_student_count(OUT count INT) BEGIN SET count=SELECT COUNT(*) FROM student; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_get_student_count(OUT count INT) BEGIN SELECT COUNT(*) FROM student INTO count; END // DELIMITER ; 【答案】A 4.创建一个带INOUT 输入输出参数的存储过程proc_add_num,将传入的数值加 10 后返回,下列语法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_add_num(INOUT num INT) BEGIN SET num=num+10; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_add_num(IN OUT num INT) BEGIN SET num=num+10; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_add_num(INOUT num) BEGIN SET num=num+10; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_add_num(INOUT num INT) BEGIN num=num+10; END // DELIMITER ; 【答案】A 5.创建存储过程时添加存在性检查,避免重复创建报错,下列语法正确的是( ) A. DELIMITER // CREATE IF NOT EXISTS PROCEDURE proc_test() BEGIN SELECT 'Hello World'; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE IF NOT EXISTS proc_test() BEGIN SELECT 'Hello World'; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_test() IF NOT EXISTS BEGIN SELECT 'Hello World'; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE EXISTS proc_test() BEGIN SELECT 'Hello World'; END // DELIMITER ; 【答案】B 6.存储过程中添加注释说明,下列写法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_get_student_by_age(IN min_age INT) COMMENT '查询年龄大于指定值的学生' BEGIN SELECT * FROM student WHERE age>min_age; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_get_student_by_age(IN min_age INT) BEGIN -- 查询年龄大于指定值的学生 SELECT * FROM student WHERE age>min_age; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_get_student_by_age(IN min_age INT) COMMENT=查询年龄大于指定值的学生 BEGIN SELECT * FROM student WHERE age>min_age; END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_get_student_by_age(IN min_age INT) COMMENT "查询年龄大于指定值的学生" BEGIN SELECT * FROM student WHERE age>min_age; END // DELIMITER ; 【答案】A 7.创建一个包含多条 SQL 语句的存储过程proc_delete_old_log,删除 7 天前的日志并记录删除数量,下列语法正确的是( ) A. DELIMITER // CREATE PROCEDURE proc_delete_old_log(OUT delete_count INT) BEGIN DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY; SELECT ROW_COUNT() INTO delete_count; END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE proc_delete_old_log(OUT delete_count INT) DO DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY; SELECT ROW_COUNT() INTO delete_count; END // DELIMITER ; C. DELIMITER // CREATE PROCEDURE proc_delete_old_log(OUT delete_count INT) BEGIN DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY SELECT ROW_COUNT() INTO delete_count END // DELIMITER ; D. DELIMITER // CREATE PROCEDURE proc_delete_old_log(OUT delete_count INT) ( DELETE FROM log WHERE create_time < NOW()-INTERVAL 7 DAY; SELECT ROW_COUNT() INTO delete_count; ) // DELIMITER ; 【答案】A 8.下列关于存储过程参数的写法中,存在核心语法错误的是( ) A. CREATE PROCEDURE proc_test(IN a INT, OUT b INT, INOUT c INT) B. CREATE PROCEDURE proc_test(IN a INT, IN b INT) C. CREATE PROCEDURE proc_test(OUT a INT, IN b INT) D. CREATE PROCEDURE proc_test(IN a INT OUT b INT) 【答案】D 9.创建存储过程时,下列关于存储过程名称的写法正确的是( ) A. CREATE PROCEDURE 'proc_get_student'() B. CREATE PROCEDURE proc get student() C. CREATE PROCEDURE proc_get_student_123() D. CREATE PROCEDURE SELECT() 【答案】C 10.已知数据表:商品表goods(商品id g_id,商品名g_name,库存stock),库存日志表stock_log(日志id log_id AUTO_INCREMENT,商品id g_id,变动数量change_num,操作时间log_time)。创建一个带存在性检查的存储过程proc_add_stock,接收商品 ID 和要增加的库存数量(IN 参数),返回更新后的总库存(OUT 参数),同时自动记录库存变动日志,添加注释 “增加商品库存并记录日志”,下列语法完全正确的是( ) A. DELIMITER // CREATE PROCEDURE IF NOT EXISTS proc_add_stock(IN p_gid INT, IN p_num INT, OUT p_total INT) COMMENT '增加商品库存并记录日志' BEGIN UPDATE goods SET stock=stock+p_num WHERE g_id=p_gid; SELECT stock INTO p_total FROM goods WHERE g_id=p_gid; INSERT INTO stock_log(g_id,change_num,log_time) VALUES(p_gid,p_num,NOW()); END // DELIMITER ; B. DELIMITER // CREATE PROCEDURE IF NOT EXISTS proc_add_stock(IN p_gid INT, IN p_num INT, OUT p_total INT) COMMENT='增加商品库存并记录日志' BEGIN UPDATE goods SET stock=stock+p_num WHERE g_id=p_gid; SELECT stock INTO p_total FROM goods WHERE g_id=p_gid; INSERT INTO stock_log(g_id,change_num,log_time) VALUES(p_gid,p_num,NOW()); END // DELIMITER // C. DELIMITER // CREATE PROCEDURE IF NOT EXISTS proc_add_stock(IN p_gid INT, IN p_num INT, OUT p_total INT) COMMENT '增加商品库存并记录日志' BEGIN UPDATE goods SET stock=stock+p_num WHERE g_id=p_gid; SET p_total=SELECT stock FROM goods WHERE g_id=p_gid; INSERT INTO stock_log(g_id,change_num,log_time) VALUES(p_gid,p_num,NOW()); END // DELIMITER ; D. DELIMITER // CREATE IF NOT EXISTS PROCEDURE proc_add_stock(IN p_gid INT, IN p_num INT, OUT p_total INT) COMMENT '增加商品库存并记录日志' BEGIN UPDATE goods SET stock=stock+p_num WHERE g_id=p_gid; SELECT stock INTO p_total FROM goods WHERE g_id=p_gid; INSERT INTO stock_log(g_id,change_num,log_time) VALUES(p_gid,p_num,NOW()); END // DELIMITER ; 【答案】A 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

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