自學Mysql 儲存過程 判斷和迴圈語句

2021-10-02 05:34:22 字數 1746 閱讀 1707

case

用case解決傳入的值是否是數字

create procedure `test_case`(num int,out flag varchar(20))

begin

case num #類似於swtich

when num>0 then set flag= '是正數';

when num=0 then set flag= '是0';

when num<0 then set flag= '是負數';

else set flag= '不是數字';#儲存過程的傳入資料感覺沒什麼限制,加了一行

end case;#結束case是必須的

#select num;

endcall test_case(,@flag);

select @flag as flag;

if

用if解決傳入的值是否是數字

create procedure `test_if1`(num int,out flag varchar(20))

begin

if num>0 then#num>0 可以用()括起來,也可以不用

set flag= '是正數';

elseif num=0 then

set flag= '是0';

elseif num<0 then

set flag= '是負數';

else

set flag= '不是數字';

end if;#結束if是必須的

endcall test_if1(9-8,@flag);

select @flag;

while

用while解決從0加到100的和

create  procedure `test_for`(num int)

begin

declare i int default 0; #定義變數 先變數再型別 沒有de****t是null

declare total int default 0;#定義變數

while i<=num

do set total=total+i;#賦值

set i=i+1;

end while;#結束while

select total;#顯示數值

endcall test_for(100);

loop

用loop解決從0加到100的和

create definer=`root`@`localhost` procedure `test_loop`(num int)

begin

declare i int default 0;

declare total int default 0;

add_loop:loop #add_loop 自定義loop的名

if numend if;

set total=total+i;

set i=i+1;

end loop; #結束這個loop

select total;

endcall test_loop(100);

Mysql自學 儲存過程

個人的一些學習總結,各位大牛給指正指正。儲存過程的含義 一組預先編譯好的sql語句的集合。優點 1 提高 的重用性。2 簡化 編寫。3 減少了編譯次數和伺服器的連線次數,提公升了效率。格式create procedure 儲存過程名稱 引數列表 begin 儲存過程體 一組sql語句 end注意點 ...

mysql儲存過程表 mysql儲存過程和表命令

show procedure status 2.顯示某個儲存過程的詳細資訊 sp為儲存過程名稱 show create procedure sp 3.顯示當前庫中所有表 show tables 4.顯示某個表的建表語句 test為表名 show create table test 5.刪除儲存過程 ...

mysql 過程和函式 MySQL 儲存過程和函式

變數 系統變數 變數由系統提供,不是使用者自定義的,屬於伺服器層面 全域性變數 會話變數 如果是全域性級別,則需要加global,如果是會話級別,則需要加session,如果不寫,則預設是會話 檢視全域性變數 show global variables show global variablesli...