mysql -- 自定义函数及循环结构
和存储过程类似,区别在于存储过程可以有0个或多个返回,但是函数只能有唯一一个返回值 一般而言,存储过程适合批量插入,批量删除,增删改;函数则用于处理数据,查询某个值。
创建
create function 函数名( 参数名 参数类型 ) returns 返回类型; begin 函数体; end
函数体肯定会有return 语句,如果没有会报错。
调用
select 函数名(参数列表);
示例
比方有员工表employees
id | name |
---|---|
1 | jack |
… | … |
要统计员工个数则可使用以下自定义函数:
# 创建 create function fun() returns int begin declare temp int defualt 0; select count(*) into temp from employees; return temp; end; # 调用 select func();
查看
show create function 函数名;
存储过程可在mysql数据库的proc表里查看,这个表里保存了这个数据库中保存的存储过程和函数,以type字段作为区分二者的标志。
删除
drop function 函数名
和存储过程一样函数一般也很少做修改,若要修改则删掉之后再创建。
循环结构
mysql中,循环有while do , loop, repeat until, 循环体里的跳转语句有 iterate ,类似于continue,开始下一轮循环, leave,类似于break 结束循环体。
while do
语法:
[标签:] while 条件 do # [] 表示可选 循环体... end while [标签];
示例: 批量插入,根据次数插入多次数条到某个表
中, 如果次数大于20则停止:
delimiter $ create procedure pro_while( in insertCount int ) begin declare i int default 1; a: while i <= insertCount do if i > 20 then leave a; end if; #插入语句; set i = i +1; end while a; end $; delimiter ;
loop
语法:
[标签:] loop 循环体; end loop [标签];
loop 没有条件判定
,若要结束循环体只能搭配leave 标签;
使用,否则就是死循环。
repeat until
语法
[标签:] repeat 循环体 until 满足结束循环的条件 end repeat [标签];
repeat 必然
会执行一次循环体,而,其条件 是 满足该条件之后就结束循环体,与while 满足条件则执行循环体恰恰相反。
本文作者:子龙_子龙
本文链接:https://www.cnblogs.com/ZiLongZiLong/p/17144882.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2018-12-19 12月份牢骚
2017-12-19 js回忆录(5),终章