考点16 存储函数《数据库原理与应用技术-MySQL》河北省(对口招生)计算机类 知识点讲解

2026-08-26
| 7页
| 54人阅读
| 1人下载
精品

内容正文:

河北省(计算机类)对口招生 《数据库原理与应用技术-MySQL》复习讲义 模块4 MySQL数据库编程 考点 16 存储函数 【考纲要求】 1.掌握存储函数的基本概念、特点与作用; 2.掌握存储函数的基本概念及构造方法; 3.掌握使用SQL 语句创建、修改、删除存储函数的操作方法及应用; 4.掌握存储函数的调用方法; 【知识网络】 【知识和技能要点】 一、存储函数 1.定义 存储函数(自定义函数)是一组经过编译、封装特定业务逻辑的SQL语句集合,存储在数据库中。用户可通过函数名调用,传入指定参数,最终必须返回一个唯一结果值。 2.核心特点 (1)预编译性:创建时完成语法编译与优化,首次创建后永久存储在数据库,重复调用无需重新编译,执行效率高。 (2)封装性:将复杂的查询、计算、判断逻辑封装,隐藏底层SQL细节,简化外部调用操作。 (3)参数唯一性:仅支持IN输入参数,不支持OUT、INOUT参数,杜绝参数输出混乱问题。 (4) 强制返回值:语法规定必须使用RETURN语句返回一个指定类型的数据,缺一不可。 (5)依附数据库:独立于数据表存在,依附数据库生效,删除数据表不会影响存储函数。 (6)可复用性:一次创建,多次、多处调用,支持跨SQL语句复用。 3.主要作用 (1)简化复杂数据计算:封装累加、判断、数值换算、统计计算等重复逻辑。 (2)减少代码冗余:统一封装通用逻辑,避免重复编写相同SQL语句。 (3)提升执行效率:预编译特性,相比原生零散SQL执行速度更快。 (4)规范业务逻辑:统一数据处理规则,保证全库数据计算标准一致。 (5)适配SQL内嵌调用:可直接用于SELECT、WHERE、ORDER BY等语句中,灵活性远高于存储过程。 二、存储函数相关的方法 1.创建存储函数基本语法形式如下: CREATE FUNCTION <函数名> ([参数名 数据类型[,....]]) RETURNS <返回类型> BEGIN <过程体> END 2.调用存储函数 SELECT <函数名 (实参数名)> 3.查看存储函数 (1)使用SHOW STATUS语句查看存储函数的状态 SHOW FUNCTION STATUS [ LIKE <函数名 >] (2)使用SHOW CREATE语句查看存储函数的定义 SHOW CREATE FUNCTION <函数名> (3)从information_schema.Routines表中查看存储函数信息 SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME=’数据库名’; 4. 修改存储函数 ALTER FUNCTION <函数名> [characteristic ....] 5. 删除存储函数 DROP FUNCTION <IF EXISTS> [ 函数名 ] 三、存储函数与存储过程对比 对比维度 存储过程 存储函数 返回值 无或多个返回值 必须且仅有一个返回值 参数类型 IN、OUT、INOUT 仅支持IN 调用方式 CALL 语句单独调用 SELECT 内嵌调用 适用场景 复杂业务、增删改批量操作 数据计算、数值判断、结果查询 【练习题】 一、填空题 1.存储函数调用后,必须返回________个结果值。 2.创建存储函数时,必须使用________子句指定返回值的数据类型。 3.查看存储函数状态信息的语句是 SHOW ________ STATUS。 4.要获取存储函数的定义,可以使用________命令。 5.存储函数中,变量的声明使用关键字________ 。 二、选择题 1.下列关于存储函数的定义,描述正确的是( ) A. 存储函数是单一查询语句,无需编译 B. 存储函数是编译后存储在数据库、可调用、必须返回唯一结果值的SQL语句集合 C. 存储函数需要依附数据表才能存在 D. 存储函数可以没有返回值 2.存储函数区别于存储过程最核心的特点是( ) A. 支持封装 B. 预编译执行 C. 必须且仅有一个返回值 D. 可复用 3.存储函数支持的参数类型有( ) A. IN、OUT、INOUT B. 仅IN C. 仅OUT D. 仅INOUT 4.存储过程和存储函数相比,说法正确的是( ) A. 函数支持多返回值 B. 过程只能SELECT调用 C. 函数必须单返回值 D. 过程仅支持IN参数 5.下列关于 RETURN 和 RETURNS 的说法,正确的是( ) A. 两者作用完全相同 B. RETURN 用于返回值,RETURNS 用于声明返回类型 C. RETURNS 用于返回值,RETURN 用于声明返回类型 D. 两者都用于声明返回类型 6.存储函数与存储过程的共同点是( ) A. 都可以存储在数据库中 B. 都必须返回一个值 C. 都只能使用 IN 参数 D. 都使用 CALL 语句调用 7.在MySQL中,如何调用一个带有参数的存储函数( ) A.使用CALL语句并传递参数 B.使用EXECUTE语句并传递参数 C.使用SELECT语句并传递参数 D.直接使用函数名并传递参数 8.在MySQL中修改存储函数时,以下( )是子程序包含读数据的语句。 A. CONTAINS SQL B. READSSQL DATA C. MODIFIES SQL DATA D. NO SQL 9.开发人员创建了一个存储函数 calc_tax(amount DECIMAL(10,2)) RETURNS DECIMAL(10,2),函数体中使用 IF 语句判断金额区间并返回对应税额。下列关于该函数的说法,正确的是( ) A. 该函数可以通过 OUT 参数将税额传递给调用者 B. 该函数可以返回多个不同税率区间的计算结果 C. 该函数只能通过 RETURN 语句返回一个税额值 D. 该函数必须使用 CALL 语句才能执行 10.数据库中有存储函数 format_order_status(status_code INT) RETURNS VARCHAR(20),用于将订单状态码转换为可读文本。现需要查询订单表中状态为"已发货"的订单,下列语句中能正确利用该函数进行条件筛选的是( ) A. SELECT * FROM orders WHERE format_order_status(status) = '已发货'; B. SELECT * FROM orders CALL format_order_status(status) = '已发货'; C. SELECT * FROM orders WHERE status = format_order_status('已发货'); D. CALL format_order_status(status) WHERE status = '已发货'; 3、 判断题 1.存储函数可以嵌入 SELECT 语句中使用。() 2.删除数据表后,该表相关的存储函数会自动删除。() 3.存储函数具有预编译性,重复调用时通常不需要重新编译。( ) 4.存储函数通常使用 CALL 语句调用。() 5.存储函数可以多次调用,具有可复用性。() 6.存储过程和存储函数在语法上是完全相同的。() 7.存储函数的主体部分可以包含控制流语句,如IF、WHILE等。() 8.存储函数中必须使用 RETURN 语句返回结果。() 9.在存储函数中,可以使用RETURN语句来返回一个值。() 10.存储函数可以隐藏底层 SQL 细节,简化外部调用。() 4、 程序读程题 1. 下列程序的运行结果为______ CREATE FUNCTION sum_prime() RETURNS INT BEGIN DECLARE num INT DEFAULT 2; DECLARE i INT DEFAULT 2; DECLARE flag INT DEFAULT 1; DECLARE total INT DEFAULT 0; WHILE num <= 20 DO SET flag = 1; SET i = 2; WHILE i < num DO IF num % i = 0 THEN SET flag = 0; END IF; SET i = i + 1; END WHILE; IF flag = 1 THEN SET total = total + num; END IF; SET num = num + 1; END WHILE; RETURN total; END 2. 下列程序执行后,调用 SELECT gcd(48,18); 的返回值为_________ CREATE FUNCTION gcd(a INT, b INT) RETURNS INT BEGIN DECLARE temp INT; WHILE b != 0 DO SET temp = a % b; SET a = b; SET b = temp; END WHILE; RETURN a; END 【答案】 一、填空题 1. 一 2.RETURNS 3.FUNCTION 4. SHOW CREATE FUNCTION 5.DECLARE 二、选择题 1.B 2. C 3. B 4. C 5. B 6.A 7. C 8. B 9. C 10.A 三、判断题 1. √ 2. × 3.√ 4. × 5. √ 6.× 7.√ 8. √ 9. √ 10. √ 四、程序读程题 1.77 2. 6 原创精品资源学科网独家享有版权,侵权必究 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

考点16  存储函数《数据库原理与应用技术-MySQL》河北省(对口招生)计算机类 知识点讲解
1
考点16  存储函数《数据库原理与应用技术-MySQL》河北省(对口招生)计算机类 知识点讲解
2
考点16  存储函数《数据库原理与应用技术-MySQL》河北省(对口招生)计算机类 知识点讲解
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。