MySQL—存储过程

本文从初次接触存储过程的视角出发,介绍了存储过程与存储函数的主要区别,并通过具体实例展示了如何在Navicat中创建和使用存储过程。同时,文章深入探讨了数据库变量的概念,包括系统变量、用户变量和局部变量,最后提供了一个利用存储过程插入数据的实践案例。

存储过程

这次的项目中看到专门DBA写的数据库存储过程,新生好奇,想要学习一番。看了一些书,发现基本都是概念介绍,看完之后你不一定会写。我觉得基本的知识要了解,然后再在具体的业务中去摸索才能学会。

第一次尝试

看书的时候看到一句话:• 存储函数具有返回值 • 存储过程没有返回值
这应该是函数和存储过程一个主要的区别。看下面的例子:
在这里插入图片描述
这是在navicat中创建的一个最最简单的存储过程,运行一下:
在这里插入图片描述
在这里插入图片描述
这个存储过程不是有返回值吗,这和书里的书法不一样啊。扔给大家一句话,能理解就理解不理解多看几遍就理解了:
函数是 将结果用 返回值的形式表示 ; 过程将返回结果利用参数流出去 所以说这里不是返回了返回值 而是 打印了一下参数而已。

利用存储过程插入一条数据 (练习)
1.介绍个概念:数据库变量
系统变量 : show variables like ‘version%’; 查看已version 开头的系统变量;
用户变量:以@开头的,用户变量跟mysql客户端是绑定的,设置的变量,只对当
前用户使用的客户端生效。也叫会话变量。
局部变量:begin end 之间的
我们用到的只是局部变量
在这里插入图片描述
把参数填好,in,out,inout这三种类型的参数区别自己去查吧。

BEGIN
   DECLARE product_stock int DEFAULT  300;	 //定义product_stock的默认值为300
   SELECT MAX(product_id) INTO new_product_id FROM  product_info; //查询出原表中主键最大的一个值,赋给变量 new_product_id 
   SET new_product_id = new_product_id + 1;  //new_product_id 变量值+1
   INSERT INTO product_info VALUES(new_product_id,product_name,0,product_stock,'','',0,0,CURDATE(),CURDATE());  //简单的插入语句;这些变量中product_name是传入的参数
END  

我也还在学习之中…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值