MySQL8存储函数 - 全栈教程之MySQL8教程

MySQL8存储函数包含:MySQL8存储函数介绍、MySQL8存储函数教程和增删改查MySQL8存储函数等,全栈教程之MySQL8教程,主打原创、全部免费。

教程目录:
教程内容:
最近更新:2025-03-11

一、MySQL8存储函数介绍

  • MySQL8存储函数是一种存储对象类型,您可以使用存储函数来封装 SQL 代码,与存储过程不同,存储函数返回单个值,可用于 SQL 表达式,您可以在任意 SQL 语句中使用存储函数,这样有助于提高可读性和可维护性。


1.1、与存储过程的区别

存储函数和存储过程都是存储对象,都用于定义 SQL 集合,它们非常类似,但有如下使用区别:

  • 存储函数有且只有一个返回值,存储过程则可以有 0 个或多个返回值;
  • 存储函数只能有不加修饰符的输入参数,存储过程可以有多个 in、out、inout 参数;
  • 存储函数只能做查询和计算,不能用 insert、update、delete 或 create 语句;
  • 存储函数不能调用存储过程,存储过程可以调用存储函数或存储过程。


二、MySQL8存储函数教程

2.1、MySQL8创建存储函数

首先,我们通过编写一个简单的存储函数,来介绍存储函数的语法。

delimiter //
create function try8_func(try8_para int) returns varchar(50)
deterministic
begin
    declare try8_result varchar(50);
    IF try8_para >= 10 then
        set try8_result = '10';
    elseif (try8_para < 10 and try8_para > 5) then
        set try8_result = '5';
    elseif try8_para < 5 then
        set try8_result = '0';
    end if;
    return (try8_result);
end //
delimiter ;


存储函数关键字说明:

  • delimiter:将默认分隔符分号 ; 更改为其它符号,本例修改为 //,更改原因是为了将存储函数作为一个整体传递给服务器,而不是根据分隔符一句一句的执行,需要在存储函数最后一行还原为默认分隔符;
  • create function:用于创建存储函数,该关键字后面指定存储函数的名称;
  • returns:存储函数返回结果的数据类型;
  • deterministic:结果确定,如果相同参数返回不确定的结果则使用 not deterministic;
  • beginend:声明存储函数的主体,您可以将 SQL 放在正文中以处理业务逻辑。


2.2、MySQL8查看存储函数

# 查询运行的状态
show create function try8.try8_func;
# 查询系统表定义
select * from information_schema.routines where routine_name='try8_func';


2.3、MySQL8调用存储函数

select try8_id, try8.try8_func(10) as result from try8_db;


2.4、MySQL8删除存储函数

drop function if exists try8.try8_func;


2.5、MySQL8修改存储函数

  • MySQL8存储函数不支持修改,官方推荐的实现方式为先删除后重建。


三、MySQL8存储函数总结

  • MySQL8教程 - MySQL8存储函数,介绍MySQL和MySQL8数据库,从MySQL8存储函数概念开始,逐步到MySQL8存储函数示例等,通篇实用易懂,让MySQL8入门更加快速和简单。


小提示:试试吧全栈教程之MySQL8教程,主打原创,定期更新,全部免费,欢迎收藏学习和转载分享。