找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
本帖最后由 广州30班陈俊述 于 2021-6-16 20:56 编辑

mysqld的存储过程

drop procedure if exists dcs30; #删除存储过程,如果存在dcs30      增加程序的健壮性
create procedure dcs30(i int) #创建存储过程, 命名为dcs30
begin  # 开始
#写相关的SQL语句结合,需要重复执行的多条SQL语句
declare n int default(select count(*) from mm); # 删除表 如果存在mm表          增加程序的健壮性
#定义一个变量 n 类型为int, 默认值为(统计mm表行数)
declare m int default'';
#注意定义变量 m 类型为int, 默认值为 空
declare o int default(select max(score) from mm);
#注意定义变量的SQL语句必须要写在存储过程中所有SQL语句最前面
drop table if exists mm;  # 删除表 如果存在mm
create table mm(id int (10) primary key auto_increment,score int (10));

insert into mm values (1,99),(2,88);
insert into mm values (3,97),(4,85);
insert into mm values (5,96),(6,86);
insert into mm values (7,95),(8,84);
-- select *from mm where id=j;       带参数进行查询操作                  
-- select *from mm where id=i;      带参数进行查询操作
-- desc mm;
/*
if i=0 then  # if判断语句的单分支    if判断的多分支,注意有多少个if 就要有多少个end if;
      select count(*) from mm;
      else
      select * from mm where id=i;
      end if; */
      if i=0 then
      select count(*) from mm;
      else if i>0 && i<=n then
      select *from mm where id=i;      带参数进行查询操作
      else if i>n then
      while i>n do   #10>8进入循环   10>(8+1=9)进入循环    10>(8+1+1=10)不满足退出循环
     set o=o+1;
     insert into mm(score) values(49);           条件满足的时候就进入while 循环,条件不满足就退出while循环,  怎么让条件不满足?
     set n=n+1;                                                   可以在while循环里面设置每次结束循环之前都设置一下条件的值+1(set n=1)                                       
                                                          while 条件 do 之后需要 使用end while 结束循环判断
     end while;
     else
      select *from mm;
      end if;
      end if;

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册