MySQL存储过程示例

实例1:

为了演示MySQL中的存储过程,我们先创建一些表和数据:

drop table if exists my_test_table;
create table my_test_table (
    id integer primary key not null AUTO_INCREMENT,
    name varchar(20),
    age integer,
    point double
);
insert into my_test_table (name,age,point) values 
    ('刘德华',40,10.0),('周杰伦',30,20.0),('周星驰',20,40.0),('范晓萱',20,20.0),('陈绮贞',10,10.0),
    ('朴树',30,12.0),('谢天笑',40,10.0),('谢春花',20,10.0),('房东的猫',50,100.0),('许巍',30,10.0);

然后创建一个空参数的存储过程:

delimiter //
create procedure test_procedure1()
begin 
    select avg(point) as pointaverage
    from my_test_table;
end //
delimiter ;

然后运行这个存储过程:

call test_procedure1()

可以看到结果如下:

pointaverage|
------------|
        24.2|

删除存储过程:

drop procedure test_procedure1

实例2:

举例:求两个数的最大值

if实现

#DELIMITER $$
CREATE PROCEDURE compare(IN n1 INT,IN n2 INT)
BEGIN
    SET @res=0;
    IF n1 > n2 THEN
        SET @res=n1;
    ELSEIF n1 = n2 THEN
        SET @res=n1;
    ELSE
        SET @res=n2;
    END IF;
END #$$
#DELIMITER ;
call compare(100,2);
select @res;

b16c6d9df10ece29eac2986bec9cc864.png

CASE语句

#DELIMITER $$
CREATE PROCEDURE compare2(IN n1 INT,IN n2 INT)
BEGIN
    SET @res=0;
    CASE  
        WHEN n1>n2 THEN 
            SET @res=n1;
        WHEN n1=n2 THEN 
            SET @res=n1;
        ELSE 
            SET @res=n2;
    END CASE;
END #$$
#DELIMITER ;

WHILE语句

#delimiter $$
CREATE PROCEDURE inserinfo3()
BEGIN
    DECLARE x INT DEFAULT 9;
    ins: WHILE x<=18 DO
       SET x=x+1;
       INSERT INTO users(name,gender) VALUES(x,'女');
    END WHILE;
END #$$
#delimiter ;

-----------------------------------

公众号【Csharp编程大全】,需要进技术群交流的,请添加小编mm1552923

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值