存储过程

存储过程:一组预先编译好的SQL语句的集合

一、创建语法

#结束标记设置
DELIMITER $
CREATE PROCEDURE 存储过程名(参数列表)
BEGIN
	存储过程体(一组合法的SQL语句)
END $

注意:
1、参数列表包括三部分
参数模式 参数名 参数类型
举例:
IN stuname VARCHAR(20)

参数模式:
IN :该参数可以作为输入,也就是该参数需要调用方法传入值
OUT:该参数可以作为输出,也就是该参数可以作为返回值
INOUT该参数既可以作为输入,也可以作为输出

二、调用语法

CALL 存储过程名(实参列表) 结束标记
例如:结束标记为$
CALL 存储过程名(实参列表) $

三、查看存储过程

SHOW CREATE PROCEDURE 存储过程名$

四、删除存储过程

DROP PROCEDURE 存储过程名$

五、案例

1、插入到girls库下的admin表中五条记录(空参列表)

#结束标记设置
DELIMITER $
CREATE PROCEDURE myp1()
BEGIN
	INSERT INTO admin(`username`,`password`)
	VALUES('kzl','0407'),('lsj','0721'),('ktrue','0408'),
	('kkk','6666'),('lll','8888');
END $

#调用
CALL myp1()$

2、创建存储过程,实现用户是否登录成功(创建带in模式参数的存储过程)

CREATE PROCEDURE myp4(IN `username` VARCHAR(20),IN `password` VARCHAR(20))
BEGIN
	DECLARE result INT DEFAULT 0; 
	SELECT COUNT(*) INTO result
	FROM `admin`
	WHERE `admin`.`username` = `username`
	AND admin.`password` = `password`;
	
	SELECT IF(result>0,'成功','失败');
END $

#调用
CALL myp3('张飞','8888')$

3、根据女神名,返回对应的男神名和男神魅力值(创建带out模式参数的存储过程)

CREATE PROCEDURE myp6(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20),OUT CP VARCHAR(20))
BEGIN
	SELECT bo.`boyName`,bo.`userCP` INTO boyName,CP
	FROM `boys` bo
	INNER JOIN `beauty` b
	ON bo.`id` = b.`boyfriend_id`
	WHERE b.`name` = beautyName;
END $

#调用
CALL myp6('小昭',@bName,@bcp)$
SELECT @bName,@bcp$

4、传入a和b两个值,最终a和b都翻倍并返回(创建带inout模式参数的存储过程)

CREATE PROCEDURE myp7(INOUT a INT,INOUT b INT)
BEGIN
	SET a=a*2;
	SET b=b*2;
END $

#调用
SET @m=2$
SET @n=$
CALL myp7(@m,@n)$
SELECT @m,@n$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值