mysql中创建用户自定义函数
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,总有一些复杂的逻辑我们还需要多处使用,此时就显现出函数的重要性。mysql函数的要素函数名参数列表函数体返回值定义语法create function fun_name(参数列表)returns 返回值
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
江北区技术刀片服务器售后服务
奉贤区高科技网络技术标准
海南科技职业大学互联网工程技术
深圳聊天软件开发方案
数据库服务器里是空的
数据库管理的应用场景
类似于楼月的软件开发
骑马与砍杀最强的服务器
数据库营销主要内容
安徽传统网络安全
小鲸鱼图标数据库
山东推荐的软件开发材料
深圳市指尖动力网络技术
徐州工业网络技术
穿越火线哪个服务器可以加好友
上海电子网络技术费用是多少
软件开发螺旋模型的含义
杭州九旺网络技术招聘
网络安全管理措施分享
北京海市经纬网络技术
企业服务器管理系统
济南大学代理服务器
大型数据库服务器配置
广州宾果游戏网络技术有限公司
华为云服务器操作记录在哪看
山西服务器机柜规格尺寸
龙华区服务器机柜经销商
数据库的安全访问控制
数据库更新系统
东莞无线网络安全监管