为了账号安全,请及时绑定邮箱和手机立即绑定

mysql数据库——创建存储过程(五)

标签:
MySQL

创建带有IN OUT类型参数的存储过程
DELIMITER //
CREATE PROCEDURE removerUserAndReturnUserName(IN showID INT UNSIGNED,OUT showName INT UNSIGNED)
BEGIN
DELETE FROM user WHERE id = showID;
SELECT count(ID) FROM user INTO showName;
END//
SELECT count(ID) FROM user INTO showName; /* 该语句中的 INTO 含义就是将 SELECT 语句结果的表达式返回到 showName 变量中 /
CALL removerUserAndReturnUserName(10,@nums); /* @nums 所代表的就是用户变量,可用 SELECT @nums 输出 /
用 DECLARE 声明的变量是局部变量,局部变量只能存在于 BEGIN...END 之间,且声明时必须置于 BEGIN...END 的第一行
而通过 SELECT...INTO.../SET @id = 07 这种方法设置的变量我们称之为用户变量,只能存在于当前用户所使用的客户端有效。
CALL rmUserAndRtUserNums(27, @nums);
SELECT @nums; //@nums - 就是用户变量
DECLARE声明的变量都是在BEGIN与END之间,是局部变量
SET @i = 7; //通过@或SET设置的变量称为用户变量
@变量
1.用户变量:以"@"开始,形式为"@变量名"
用户变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效
2.全局变量:定义时,以如下两种形式出现,set GLOBAL 变量名 或者 set @@global.变量名
对所有客户端生效。只有具有super权限才可以设置全局变量
3.会话变量:只对连接的客户端有效。
4.局部变量:作用范围在begin到end语句块之间。在该语句块里设置的变量
declare语句专门用于定义局部变量。set语句是设置不同类型的变量,包括会话变量和全局变量
存储过程与自定义函数的区别
存储过程实现的功能要复杂一些;而函数的针对性更强
存储过程可以返回多个值;函数只能有一个返回值
存储过程一般独立的来执行;而函数可以作为其他sql语句的组成部分来出现
小节:
1、存储过程:是sql语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理
2、参数:输入类型、输出类型、输入&&输出
3、创建:create.....procedure.......
4、注意事项:
(1)创建存储过程或者自定义函数时需要通过delimiter语句修改定界符。
(2)如果函数体或过程体有多个语句,需要包含在begin......end语句块中。
(3)存储过程通过cell调用。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消