mysql存儲過程 條件判斷/循環語句

1.存儲過程的條件語句

需求:編寫存儲過程,如果用戶my_userId ='APP-2016-00494878'就給出my_userName,

如果用戶my_userId ='APP-2016-7777777'就給出 user_age,

其他情況返回my_userId

delimiter $$
create procedure testf(IN my_userId varchar(32))
begin
  declare my_userName varchar(32) DEFAULT'';

  if(my_userId ='APP-2016-00494878')
  then
      select user_name into my_userName from p_app_user where user_id = my_userId;
      select my_userName;
  elseif(my_userId ='APP-2016-7777777')
  then
      select user_age into my_userName from p_app_user where user_id = my_userId;
      select my_userName;
else
      select my_userId;
    end if;
end;
$$
delimiter ;

條件判斷語句結構:

1.條件語句最基本的結構:if()then…else…end if;

2.多條件判斷結構:if()then…elseif()then…else…end if;

3.if判斷返回邏輯真或者假,表達式可以是任意返回真或假的表達式


2.While循環語句

需求:使用循環語句,向表testa(uid)中插入10條連續的記錄

delimiter $$
create procedure insertdata1()
begin
  declare i int DEFAULT 0;
  while(i<10) DO
  begin
    select i;
    set i=i+1;
    insert into testa(uid) VALUES(i);
  end;
  end while;
end;
$$
delimiter ;

While循環語句:

1.while語句最基本的結構:while() do …begin…end; end while;

2.while判斷返回邏輯真或者假,表達式可以是任意返回真或者假的表達式

  

3.repeat循環語句

需求:使用repeat循環像表插入10條uid連續的記錄

delimiter $$
create procedure insertdata1()
begin
  declare i int DEFAULT 100;
  repeat
  begin
    select i;
    set i=i+1;
    insert into testa(uid) VALUES(i);
  end;
  until i>=110
  end repeat;
end;
$$
delimiter ;

repeat循環語句

1.repeat語句最進本的結構:repeat…begin…end; until… end repeat;

2.until判斷返回邏輯真或者假,表達式可以是任意返回真或者假的表達式

只有當until語句爲真時,循環才結束。

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章