数据库存储过程和函数入门(Mysql)

  1. 存储过程简单示例
delimiter $$             #设置终结符号为$$
create procedure testa()
begin
  select * from db_name;
end;
$$
delimiter ; 
  1. 存储过程参数示例
delimiter $$             #设置终结符号为$$
create procedure testa(IN my_id int)    #IN、OUT、INOUT,参数可读、可写、都可
begin
  select * from db_name where uid=my_id;
end;
$$
delimiter ; 

IN:参数传入时有具体值,可用在sql语句中使用,不能更改值
OUT:预设一个参数,可在sql语句中对其赋值

  1. 存储过程条件语句示例
delimiter $$             #设置终结符号为$$
create procedure testa(IN my_id int)    #IN、OUT、INOUT,参数可读、可写、都可
begin
  declare my_status int default 0;
  select status into my_status from db_name where uid=my_id;    #将获取的status赋值给my_status
  IF(my_status=1)
  THEN
    UPDATE users set score=concat(score,'1') where uid=my_uid;
  ELSEIF(my_status=2)
  THEN
    UPDATE users set score=score+2 where uid=my_uid;
  ELSE
    UPDATE users set score=score+3 where uid=my_uid;

  ENDIF;
end;
$$
delimiter ; 
  1. 存储过程循环语句示例
delimiter $$             #设置终结符号为$$
create procedure testa(IN my_id int)    #IN、OUT、INOUT,参数可读、可写、都可
begin
  while(i<10) do
  begin
    sql语句
  end;
end;
$$
delimiter ; 
delimiter $$             #设置终结符号为$$
create procedure testa(IN my_id int)    #IN、OUT、INOUT,参数可读、可写、都可
begin
  repeat
  begin
    sql语句
  end;
  UNTIL i>10
  END repeat;
end;
$$
delimiter ; 

你可能感兴趣的:(数据库存储过程和函数入门(Mysql))