mysql中创建用户自定义函数
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,总有一些复杂的逻辑我们还需要多处使用,此时就显现出函数的重要性。mysql函数的要素函数名参数列表函数体返回值定义语法create function fun_name(参数列表)returns 返回值
千家信息网最后更新 2026年10月31日mysql中创建用户自定义函数
总有一些复杂的逻辑我们还需要多处使用,此时就显现出函数的重要性。
mysql函数的要素
- 函数名
- 参数列表
- 函数体
- 返回值
定义语法
create function fun_name(参数列表)returns 返回值类型函数体示例
不带参数
delimiter $$create function sayhello() returns varchar(20)beginreturn 'hello';end$$ delimiter ;调用示例:
select sayhello();
| sayhello() |
|---|
| hello |
带参数(参数需要标明数据类型)
delimiter $$ create function sayHelloToSomeOne(name varchar(20)) returns varchar(25) begin set @str = concat('hello ',name); return @str; end $$ delimiter ;调用示例:
select sayHelloToSomeOne('Dany');
| sayHelloToSomeOne('Dany') |
|---|
| hello Dany |
函数调用过后我们验证一下@str变量是否依然可以访问。
select @str;
| @str |
|---|
| hello Dany |
@str依然可用,说明@str的作用域是全局的。
带多个参数
多个参数用逗号 , 分隔。
函数中的局部变量
- 参数(勉强认为是局部变量),因为参数传递进来只能在函数内部使用。
- declare 定义局部变量
之前研究过以@开头的变量是全局变量,因为即使是在函数内部定义的变量例如:@aa ,在调用过函数后,@aa的值在外部我们依然可以得到,这就很明显的告诉我们,@aa是全局变量。
全局变量容易引发变量污染,所以我们需要局部变量,来保证程序独立。declare就是为了解决这一问题。
语法:
DECLARE var_name [, var_name] ... type [DEFAULT value];
例如:
delimiter $$ create function sayHelloToSomeOneVarLocal(name varchar(20)) returns varchar(30) begin declare str varchar(30); set str = concat('hello ',name); return str; end $$ delimiter ;select sayHelloToSomeOneVarLocal('xiaogang');
| sayHelloToSomeOneVarLocal('xiaogang') |
|---|
| hello xiaogang |
函数调用之后我们再试图去访问变量str,会报错。
变量
函数
参数
全局
局部
示例
多个
类型
语法
复杂
明显
重要
作用
就是
开头
数据
是在
程序
要素
过后
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北九亚互联网络科技有限公司
互联网科技垄断
科技类互联网
金融科技创新监管互联网金融
美国互联网科技
亿策互联网科技
艾特科技互联网
贷财互联网科技
广州紫鲸互联网科技
长亮科技 互联网金融
互联网科技英文翻译
美国互联网前沿科技
茂名市互联网科技产业园
互联网金融中的现代科技
智腾互联网科技有限公司
互联网科技平台产品运营
互联网领先科技活动
瑞安市蟠桃会互联网科技有限公司
互联网大会出现的黑科技
互联网科技自媒体灵感
互联网科技网
科技金融是不是互联网金融
齐家互联网科技
互联网金融科技平台
甘肃拓世互联网科技有限公司
苏州铭阳互联网科技有限公司
雨阳互联网卡科技有限公司
互联网金融运营模式中的金融科技
恒生科技指数 中概互联网
如何强化互联网金融科技