MySQL数据库之存储过程?procedure
发布时间:2022-09-13 16:16:26 所属栏目:MySql教程 来源:
导读: 前言:
stored procedure 完成特定功能的SQL语句集mysql数据库存储过程教程,存储在数据库中,经过第一次编译之后再次调用不需要编译(效率较高)
1、存储过程与函数的区别1.1、相同点1.2、不同
stored procedure 完成特定功能的SQL语句集mysql数据库存储过程教程,存储在数据库中,经过第一次编译之后再次调用不需要编译(效率较高)
1、存储过程与函数的区别1.1、相同点1.2、不同
|
前言: stored procedure 完成特定功能的SQL语句集mysql数据库存储过程教程,存储在数据库中,经过第一次编译之后再次调用不需要编译(效率较高) 1、存储过程与函数的区别1.1、相同点1.2、不同点2、存储过程的操作2.1、创建过程 基本语法: create procedure 过程名字([参数列表]) bengin 过程体 end 结束符 如果只有只有一条指令可以省略begin和end create procedure my_pro1() select * from my_student; 过程基本上可以完成函数对应的所有功能: -- 修改语句结束符 delimiter $$ -- 创建过程 create procedure my_pro2() begin -- 求1到100之间的和 -- 创建局部变量 declare i int default 1; -- declare sum int default 0; -- 会话变量 set @sum = 0; -- 开始循环获取结果 while i <= 100 do -- 求和 set @sum = @sum + i; set i = i + 1; end while; -- 显示结果 select @sum; end $$ delimiter ; 2.2、查看过程 -- 查看所有存储过程 show procedure status [like 'pattern']; -- 查看过程的创建语句 show create procedure 过程名字\G 2.3、调用过程 过程没有返回值 基本语法: call 过程名([实参列表]); -- eg: call my_pro2(); +------+ | @sum | +------+ | 5050 | +------+ 2.4、删除过程 基本语法: drop procedure 过程名; 3、存储过程的形参类型 存储过程的参数和函数一样,需要制定其类型 但是存储过程对参数还有额外的要求mysql数据库存储过程教程,自己的参数分类: 代码示例: -- 创建3个会话变量 set @var1 = 1; set @var2 = 2; set @var3 = 3; -- 查询会话变量 select @var1, @var2, @var3; +-------+-------+-------+ | @var1 | @var2 | @var3 | +-------+-------+-------+ | 1 | 2 | 3 | +-------+-------+-------+ 1 row in set (0.00 sec) -- 修改语句结束符 delimiter $$ -- 定义过程 create procedure my_pro3(in a int, out b int, inout c int) begin -- 查看传入的3个数据值 select a, b, c; -- +------+------+------+ -- | a | b | c | -- +------+------+------+ -- | 1 | NULL | 3 | -- +------+------+------+ -- 修改3个变量值 set a = 10; set b = 20; set c = 30; select a, b, c; -- +------+------+------+ -- | a | b | c | -- +------+------+------+ -- | 10 | 20 | 30 | -- +------+------+------+ -- 查看会话变量 select @var1, @var2, @var3; -- +-------+-------+-------+ -- | @var1 | @var2 | @var3 | -- +-------+-------+-------+ -- | 1 | 2 | 3 | -- +-------+-------+-------+ -- 修改会话变量 set @var1 = 'a'; set @var2 = 'b'; set @var3 = 'c'; select @var1, @var2, @var3; -- +-------+-------+-------+ -- | @var1 | @var2 | @var3 | -- +-------+-------+-------+ -- | a | b | c | -- +-------+-------+-------+ end $$ delimiter ; -- 调用过程 call my_pro3(@var1, @var2, @var3); -- 再次查看会话变量 mysql> select @var1, @var2, @var3; +-------+-------+-------+ | @var1 | @var2 | @var3 | +-------+-------+-------+ | a | 20 | 30 | +-------+-------+-------+ (编辑:拼字网 - 核心网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

