您当前的位置: 首页 >  sql

彭世瑜

暂无认证

  • 3浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MySQL数据库(31):存储过程 procedure

彭世瑜 发布时间:2022-06-15 09:38:21 ,浏览量:3

存储过程 procedure

stored procedure 完成特定功能的SQL语句集,存储在数据库中,经过第一次编译之后再次调用不需要编译(效率较高)

1、存储过程与函数的区别 1.1、相同点
  1. 都是为了可重复地执行操作数据库的SQL语句集合
  2. 都是一次编译,多次执行
1.2、不同点
  1. 标识符不同,函数function 过程 procedure
  2. 函数中有返回值,且必须返回,而过程没有返回值
  3. 过程无返回值类型,不能将结果直接赋值给变量;函数有返回值类型,调用时,除了在select中,必须将返回值赋值给变量
  4. 函数可以再select语句中直接使用,而过程不能
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  select @var1, @var2, @var3;
+-------+-------+-------+
| @var1 | @var2 | @var3 |
+-------+-------+-------+
| a     |    20 |    30 |
+-------+-------+-------+

分析:

1、实参传入过程之后,实际上没有改变外部变量的值,而是把值给了形参,out类型不能接收外部变量的值,默认为null

2、当过程执行到end 的时候,如果是out或inout变量,会将形参的值重新赋值给实参变量

关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.0762s