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

2026-05-07
| 2份
| 8页
| 38人阅读
| 0人下载

内容正文:

编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第73练,内容是认识和创建存储函数。 《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第73练 认识和创建存储函数 一、单项选择题 1. 创建一个无参数存储函数func_get_student_count,返回学生总数,下列语法完全正确的是( ) A. DELIMITER // CREATE FUNCTION func_get_student_count() RETURNS INT BEGIN RETURN (SELECT COUNT(*) FROM student); END // DELIMITER ; B. DELIMITER // CREATE FUNCTION func_get_student_count() RETURN INT BEGIN RETURN (SELECT COUNT(*) FROM student); END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_get_student_count RETURNS INT BEGIN RETURN (SELECT COUNT(*) FROM student); END // DELIMITER ; D. CREATE FUNCTION func_get_student_count() RETURNS INT BEGIN RETURN (SELECT COUNT(*) FROM student); END; 【答案】A 2.创建一个带参数的存储函数func_calculate_total,根据单价和数量计算总价,下列参数写法正确的是( ) A. CREATE FUNCTION func_calculate_total(price DECIMAL(10,2), quantity INT) RETURNS DECIMAL(10,2) BEGIN RETURN price * quantity; END; B. CREATE FUNCTION func_calculate_total(OUT price DECIMAL(10,2), IN quantity INT) RETURNS DECIMAL(10,2) BEGIN RETURN price * quantity; END; C. CREATE FUNCTION func_calculate_total(INOUT price DECIMAL(10,2), quantity INT) RETURNS DECIMAL(10,2) BEGIN RETURN price * quantity; END; D. CREATE FUNCTION func_calculate_total(price DECIMAL(10,2) IN, quantity INT IN) RETURNS DECIMAL(10,2) BEGIN RETURN price * quantity; END; 【答案】A 3.下列关于存储函数返回值的写法中,语法正确的是( ) A. CREATE FUNCTION func_get_age(birth_date DATE) RETURNS INT BEGIN RETURN TIMESTAMPDIFF(YEAR, birth_date, NOW()); END; B. CREATE FUNCTION func_get_age(birth_date DATE) RETURN INT BEGIN RETURN TIMESTAMPDIFF(YEAR, birth_date, NOW()); END; C. CREATE FUNCTION func_get_age(birth_date DATE) RETURNS INT BEGIN SELECT TIMESTAMPDIFF(YEAR, birth_date, NOW()); END; D. CREATE FUNCTION func_get_age(birth_date DATE) RETURNS INT BEGIN SET @age=TIMESTAMPDIFF(YEAR, birth_date, NOW()); END; 【答案】A 4.创建存储函数时添加存在性检查,避免重复创建报错,下列语法正确的是( ) A. DELIMITER // CREATE IF NOT EXISTS FUNCTION func_test() RETURNS VARCHAR(20) BEGIN RETURN 'Hello World'; END // DELIMITER ; B. DELIMITER // CREATE FUNCTION IF NOT EXISTS func_test() RETURNS VARCHAR(20) BEGIN RETURN 'Hello World'; END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_test() IF NOT EXISTS RETURNS VARCHAR(20) BEGIN RETURN 'Hello World'; END // DELIMITER ; D. DELIMITER // CREATE FUNCTION EXISTS func_test() RETURNS VARCHAR(20) BEGIN RETURN 'Hello World'; END // DELIMITER ; 【答案】B 5.调用存储函数func_get_student_count,下列语法正确的是( ) A. CALL func_get_student_count(); B. SELECT func_get_student_count(); C. EXEC func_get_student_count(); D. SELECT * FROM func_get_student_count(); 【答案】B 6.跨库调用数据库school中的存储函数func_get_class_count,下列语法正确的是( ) A. SELECT school.func_get_class_count(); B. CALL school.func_get_class_count(); C. SELECT func_get_class_count() FROM school; D. SELECT * FROM school.func_get_class_count(); 【答案】A 7.创建一个确定性存储函数(相同输入总是返回相同输出)func_add,计算两个数的和,下列语法正确的是( ) A. DELIMITER // CREATE FUNCTION func_add(a INT, b INT) RETURNS INT DETERMINISTIC BEGIN RETURN a + b; END // DELIMITER ; B. DELIMITER // CREATE FUNCTION func_add(a INT, b INT) DETERMINISTIC RETURNS INT BEGIN RETURN a + b; END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_add(a INT, b INT) RETURNS INT DETERMINISTIC=TRUE BEGIN RETURN a + b; END // DELIMITER ; D. DELIMITER // CREATE FUNCTION func_add(a INT, b INT) RETURNS INT IS DETERMINISTIC BEGIN RETURN a + b; END // DELIMITER ; 【答案】A 8.存储函数体包含多条 SQL 语句时,下列写法正确的是( ) A. DELIMITER // CREATE FUNCTION func_get_avg_score(s_id INT) RETURNS DECIMAL(5,2) BEGIN DECLARE total INT; DECLARE count INT; SELECT SUM(score) INTO total FROM score WHERE student_id=s_id; SELECT COUNT(*) INTO count FROM score WHERE student_id=s_id; RETURN total / count; END // DELIMITER ; B. DELIMITER // CREATE FUNCTION func_get_avg_score(s_id INT) RETURNS DECIMAL(5,2) DO DECLARE total INT; DECLARE count INT; SELECT SUM(score) INTO total FROM score WHERE student_id=s_id; SELECT COUNT(*) INTO count FROM score WHERE student_id=s_id; RETURN total / count; END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_get_avg_score(s_id INT) RETURNS DECIMAL(5,2) BEGIN DECLARE total INT DECLARE count INT SELECT SUM(score) INTO total FROM score WHERE student_id=s_id SELECT COUNT(*) INTO count FROM score WHERE student_id=s_id RETURN total / count END // DELIMITER ; D. DELIMITER // CREATE FUNCTION func_get_avg_score(s_id INT) RETURNS DECIMAL(5,2) ( DECLARE total INT; DECLARE count INT; SELECT SUM(score) INTO total FROM score WHERE student_id=s_id; SELECT COUNT(*) INTO count FROM score WHERE student_id=s_id; RETURN total / count; ) // DELIMITER ; 【答案】A 9.下列关于存储函数的说法中,语法正确的是( ) A. 存储函数可以没有返回值 B. 存储函数的参数可以是 OUT 类型 C. 存储函数必须包含至少一个 RETURN 语句 D. 存储函数可以用 CALL 语句调用 【答案】C 10.创建存储函数时添加注释,下列写法正确的是( ) A. DELIMITER // CREATE FUNCTION func_get_student_name(s_id INT) RETURNS VARCHAR(20) -- 根据学号查询学生姓名 BEGIN RETURN (SELECT name FROM student WHERE id=s_id); END // DELIMITER ; B. DELIMITER // CREATE FUNCTION func_get_student_name(s_id INT) COMMENT '根据学号查询学生姓名' RETURNS VARCHAR(20) BEGIN RETURN (SELECT name FROM student WHERE id=s_id); END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_get_student_name(s_id INT) RETURNS VARCHAR(20) COMMENT='根据学号查询学生姓名' BEGIN RETURN (SELECT name FROM student WHERE id=s_id); END // DELIMITER ; D. DELIMITER // CREATE FUNCTION func_get_student_name(s_id INT) RETURNS VARCHAR(20) COMMENT '根据学号查询学生姓名' BEGIN RETURN (SELECT name FROM student WHERE id=s_id); END // DELIMITER ; 【答案】D 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第73练,内容是认识和创建存储函数。 《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第73练 认识和创建存储函数 一、单项选择题 1. 创建一个无参数存储函数func_get_student_count,返回学生总数,下列语法完全正确的是( ) A. DELIMITER // CREATE FUNCTION func_get_student_count() RETURNS INT BEGIN RETURN (SELECT COUNT(*) FROM student); END // DELIMITER ; B. DELIMITER // CREATE FUNCTION func_get_student_count() RETURN INT BEGIN RETURN (SELECT COUNT(*) FROM student); END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_get_student_count RETURNS INT BEGIN RETURN (SELECT COUNT(*) FROM student); END // DELIMITER ; D. CREATE FUNCTION func_get_student_count() RETURNS INT BEGIN RETURN (SELECT COUNT(*) FROM student); END; 2.创建一个带参数的存储函数func_calculate_total,根据单价和数量计算总价,下列参数写法正确的是( ) A. CREATE FUNCTION func_calculate_total(price DECIMAL(10,2), quantity INT) RETURNS DECIMAL(10,2) BEGIN RETURN price * quantity; END; B. CREATE FUNCTION func_calculate_total(OUT price DECIMAL(10,2), IN quantity INT) RETURNS DECIMAL(10,2) BEGIN RETURN price * quantity; END; C. CREATE FUNCTION func_calculate_total(INOUT price DECIMAL(10,2), quantity INT) RETURNS DECIMAL(10,2) BEGIN RETURN price * quantity; END; D. CREATE FUNCTION func_calculate_total(price DECIMAL(10,2) IN, quantity INT IN) RETURNS DECIMAL(10,2) BEGIN RETURN price * quantity; END; 3.下列关于存储函数返回值的写法中,语法正确的是( ) A. CREATE FUNCTION func_get_age(birth_date DATE) RETURNS INT BEGIN RETURN TIMESTAMPDIFF(YEAR, birth_date, NOW()); END; B. CREATE FUNCTION func_get_age(birth_date DATE) RETURN INT BEGIN RETURN TIMESTAMPDIFF(YEAR, birth_date, NOW()); END; C. CREATE FUNCTION func_get_age(birth_date DATE) RETURNS INT BEGIN SELECT TIMESTAMPDIFF(YEAR, birth_date, NOW()); END; D. CREATE FUNCTION func_get_age(birth_date DATE) RETURNS INT BEGIN SET @age=TIMESTAMPDIFF(YEAR, birth_date, NOW()); END; 4.创建存储函数时添加存在性检查,避免重复创建报错,下列语法正确的是( ) A. DELIMITER // CREATE IF NOT EXISTS FUNCTION func_test() RETURNS VARCHAR(20) BEGIN RETURN 'Hello World'; END // DELIMITER ; B. DELIMITER // CREATE FUNCTION IF NOT EXISTS func_test() RETURNS VARCHAR(20) BEGIN RETURN 'Hello World'; END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_test() IF NOT EXISTS RETURNS VARCHAR(20) BEGIN RETURN 'Hello World'; END // DELIMITER ; D. DELIMITER // CREATE FUNCTION EXISTS func_test() RETURNS VARCHAR(20) BEGIN RETURN 'Hello World'; END // DELIMITER ; 5.调用存储函数func_get_student_count,下列语法正确的是( ) A. CALL func_get_student_count(); B. SELECT func_get_student_count(); C. EXEC func_get_student_count(); D. SELECT * FROM func_get_student_count(); 6.跨库调用数据库school中的存储函数func_get_class_count,下列语法正确的是( ) A. SELECT school.func_get_class_count(); B. CALL school.func_get_class_count(); C. SELECT func_get_class_count() FROM school; D. SELECT * FROM school.func_get_class_count(); 7.创建一个确定性存储函数(相同输入总是返回相同输出)func_add,计算两个数的和,下列语法正确的是( ) A. DELIMITER // CREATE FUNCTION func_add(a INT, b INT) RETURNS INT DETERMINISTIC BEGIN RETURN a + b; END // DELIMITER ; B. DELIMITER // CREATE FUNCTION func_add(a INT, b INT) DETERMINISTIC RETURNS INT BEGIN RETURN a + b; END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_add(a INT, b INT) RETURNS INT DETERMINISTIC=TRUE BEGIN RETURN a + b; END // DELIMITER ; D. DELIMITER // CREATE FUNCTION func_add(a INT, b INT) RETURNS INT IS DETERMINISTIC BEGIN RETURN a + b; END // DELIMITER ; 8.存储函数体包含多条 SQL 语句时,下列写法正确的是( ) A. DELIMITER // CREATE FUNCTION func_get_avg_score(s_id INT) RETURNS DECIMAL(5,2) BEGIN DECLARE total INT; DECLARE count INT; SELECT SUM(score) INTO total FROM score WHERE student_id=s_id; SELECT COUNT(*) INTO count FROM score WHERE student_id=s_id; RETURN total / count; END // DELIMITER ; B. DELIMITER // CREATE FUNCTION func_get_avg_score(s_id INT) RETURNS DECIMAL(5,2) DO DECLARE total INT; DECLARE count INT; SELECT SUM(score) INTO total FROM score WHERE student_id=s_id; SELECT COUNT(*) INTO count FROM score WHERE student_id=s_id; RETURN total / count; END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_get_avg_score(s_id INT) RETURNS DECIMAL(5,2) BEGIN DECLARE total INT DECLARE count INT SELECT SUM(score) INTO total FROM score WHERE student_id=s_id SELECT COUNT(*) INTO count FROM score WHERE student_id=s_id RETURN total / count END // DELIMITER ; D. DELIMITER // CREATE FUNCTION func_get_avg_score(s_id INT) RETURNS DECIMAL(5,2) ( DECLARE total INT; DECLARE count INT; SELECT SUM(score) INTO total FROM score WHERE student_id=s_id; SELECT COUNT(*) INTO count FROM score WHERE student_id=s_id; RETURN total / count; ) // DELIMITER ; 9.下列关于存储函数的说法中,语法正确的是( ) A. 存储函数可以没有返回值 B. 存储函数的参数可以是 OUT 类型 C. 存储函数必须包含至少一个 RETURN 语句 D. 存储函数可以用 CALL 语句调用 10.创建存储函数时添加注释,下列写法正确的是( ) A. DELIMITER // CREATE FUNCTION func_get_student_name(s_id INT) RETURNS VARCHAR(20) -- 根据学号查询学生姓名 BEGIN RETURN (SELECT name FROM student WHERE id=s_id); END // DELIMITER ; B. DELIMITER // CREATE FUNCTION func_get_student_name(s_id INT) COMMENT '根据学号查询学生姓名' RETURNS VARCHAR(20) BEGIN RETURN (SELECT name FROM student WHERE id=s_id); END // DELIMITER ; C. DELIMITER // CREATE FUNCTION func_get_student_name(s_id INT) RETURNS VARCHAR(20) COMMENT='根据学号查询学生姓名' BEGIN RETURN (SELECT name FROM student WHERE id=s_id); END // DELIMITER ; D. DELIMITER // CREATE FUNCTION func_get_student_name(s_id INT) RETURNS VARCHAR(20) COMMENT '根据学号查询学生姓名' BEGIN RETURN (SELECT name FROM student WHERE id=s_id); END // DELIMITER ; 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

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