MySQL存储过程procedure
注意,MySQL代码编码格式应该是utf8,推荐notepad++中编辑(记事本、word等不是utf8),否则易出错。
存储过程procudure
类似于函数,把一段代码封装起来。当要执行这一段代码的时候,只需要调用该存储过程即可(可以理解为调用函数)。
在增删调查前,进入数据库(以test数据库为例)。
use test;
创建存储过程:create procedure
p1存储过程名(函数名)、begin…end$函数体。
分隔符(delimiter):不能再用;做结尾,首先自定义分隔符$,之后再改回;
delimiter $ create procedure p1() begin select * from school; end$ delimiter ;
创建有参数存储过程p2:筛选school表id>n的内容
delimiter $ create procedure p2(n int) begin select * from school where id>n; end$ delimiter ; call p2(2); #显示id>2的内容
创建多参数存储过程p3:筛选school表id>n或<=n的内容
delimiter $ create procedure p3(n int,j char(1)) begin if j=’h’ then select * from school where id>n; else select * from school where id<=n; end if; end$ delimiter ; call p2(3,’h’); #显示id>3的内容
#call p2(3,'a'); 显示id<=3的内容
调用存储过程:call 存储过程名字();
call p1();
查看现有的存储过程:\G横向显示,方便查看
show procedure status \G;
删除存储过程:drop procedure 存储过程名字;
drop procedure p1;
案例:计算1到n的和。
smallint从-2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。
int从-2^31到2^31的整型数据。
以n=100为例
delimiter $ create procedure p4(n smallint) begin declare i int; declare s int; set i=1; set s=0; while i<=n do set s=s+i; set i=i+1; end while; select s; #输出s end $ delimiter ;
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2017-09-28 字符串生成器