内容正文:
编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《数据库原理与应用技术-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 ;
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$