MYSQL学习笔记(7)

1.参数
(1)IN:该参数的值必须在调用存储过程时指定。
(2)OUT:该参数的值可以被存储过程指定,并且可以返回。
(3)INOUT::该参数的值调用时指定,并且可以被改变和返回。
2.无参数:CREATE PROCEDURE sp1() SELECT VERSION();
  CALL sp1;  //也可带()
  优化:创建一个过程体来实现版本的调用。
3.有参数:
CREATE PROCEDURE removeUserById(IN id INT UNSIGNED)
BEGIN 
DELETE FROM users WHERE id =id l
END
//
注:创建一个过程体removeUserById,用于删除users相对应id
调用:CALL removeUserById(3)
4.DELETE PROCEDURE removeUserById; 删除存储过程
5.CREATE PROCEDURE removeUserAndReturnUserNums(IN p_id INT UNSIGNED,OUT userNums INT UNSIGNED)
BEGIN
DELETE FROM users WHERE id =p_id;
SELECT COUNT(id) FROM users INTO usetNums  //INTO表示赋值
//
注:IN为输入值,OUT为输出值,此过程体的含义为删除并返回。
调用:CALL removeUserAndReturnUserNums(27,@nums);
      OUT是过程传过来的值,只能传变量,为用户变量。
用SELECT @nums 来返回值。
6.SELECT ROW_COUNT() 返回被更新的记录总数
7.注意:
(1)需要通过delimiter语句修改定界符
(2)函数体或过程体有多个语句的时候,需包含在BEGIN-END过程中
(3)存储过程用call来调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值