mysql存储过程

实例一,空参保存 :

#创建存储过程
CREATE PROCEDURE adAdmin()
#开始
BEGIN
#操作SQL
INSERT INTO admin(user_name,`status`)VALUES('测试1','100'),('测试2','200'),('测试3','300');
#结束
END

#调用存储过程
CALL adAdmin()

实例二,带参  

#带入的参数前面in不建议省略,后面跟参数名加类型
CREATE PROCEDURE adAdmin(in userName VARCHAR(20))
BEGIN
		SELECT * from admin WHERE user_name=userName;
END

CALL adAdmin('李四')

带返回值的存储过程(需要创建调用以及查询一起执行) 

#创建存储过程, OUT 表示返回的结果集
CREATE PROCEDURE admin4(in userName VARCHAR(20),OUT boy VARCHAR(20))
BEGIN
        # 将status的值通过 INTO 赋值给返回结果集 boy
		SELECT admin.status INTO boy from admin WHERE user_name=userName;
END

//执行存储过程,返回结果集参数 @加名字
CALL admin4('李四',@bName)

//直接执行结果集定义的参数
SELECT @bName

case结构

CREATE PROCEDURE test_name(in nui INT)
BEGIN
    #开始语句
	CASE 
	WHEN nui >= 90 THEN SELECT '结果A';
	WHEN nui >= 80 THEN SELECT '结果B';
	WHEN nui >= 60 THEN SELECT '结果C';
	ELSE SELECT '结果D';
    #结束语句
	END CASE;
END

CALL test_name(40)

IF ELSE结构 :

CREATE PROCEDURE test_if1(nui INT)
BEGIN 
	IF nui >= 90 THEN SELECT '结果A';
	ELSEIF nui >= 80 THEN SELECT '结果B';
	ELSEIF nui >= 60 THEN SELECT '结果C';
	ELSE SELECT '结果D';
	END IF;
END

CALL test_if1(60)

循环

iterate 类似于 continue,结束本次循环,继续下一次。

leave 类似于 break,结束当前所在的循环。

# WHILE 循环	
CREATE PROCEDURE test_while(in nui INT)
BEGIN 
	DECLARE i INT DEFAULT 1;
    #这里注意一下 WHILE	这个关键函数
	WHILE	i<= nui DO
			INSERT INTO admin(user_name,`status`) VALUES("测试",i);
			SET i=i+1;
	END WHILE;
END

删除存储过程 :DROP PROCEDURE 存储过程的名字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值