mysql儲存過程簡單例項 變數賦值 游標遍歷

2021-06-27 04:38:47 字數 1536 閱讀 4913

應用場景:

有兩張表,學生表和對應的各科成績表。

學生表student

字段:id int

, name varchar(20)

數值:

1             a

2             

b 成績表score

字段:id int       

studentid int        

subjectid int         

score int

數值:

1            

1                             

1           

80             2            

1                             

2           90

3            

1                             

3          100

4            

2                             

1          

60             5            2                             

2          

70用儲存過程來通過名字獲取對應學生的成績最大值的科目名稱。本例的邏輯比較簡單,用一句sql就可以實現,這裡只是演示儲存過程的基本語法。

建立儲存過程:

delimiter //

create procedure getmaxscore(in `xname` varchar(20))

begin

declare max_score int default 0;

declare cur_score int;

declare b int default 0;

declare cur_1 cursor for select score from score where studentid=(select studentid from student where name = xname);

declare continue handler for not found set b = 1;

open cur_1;

fetch cur_1 into cur_score;

while b<>1 do

if (cur_score > max_score) then

set max_score = cur_score;

end if;

fetch cur_1 into cur_score;

end while;

close cur_1;       

select max_score;

end呼叫儲存過程:

call getmaxdataprivilege('a')

輸出結果:

100

MySQL儲存過程例項

9.3 mysql儲存過程 mysql 5.0以後的版本開始支援儲存過程,儲存過程具有一致性 高效性 安全性和體系結構等特點,本節將通過具體的例項講解php是如何操縱mysql儲存過程的。例項261 儲存過程的建立 這是乙個建立儲存過程的例項 錄影位置 光碟 mingrisoft 09 261 例項...

MYSQL儲存過程例項

2 建立租戶公升級儲存過程 drop procedure if exists helpdesk cater upgradetenantdb delimiter create procedure helpdesk cater upgradetenantdb begin declare done int...

mysql儲存過程例項

儲存過程的作用 第一 儲存過程因為sql語句已經預編繹過了,因此執行的速度比較快。第二 儲存過程可以接受引數 輸出引數 返回單個或多個結果集以及返回值。可以向程式返回錯誤原因。第三 儲存過程執行比較穩定,不會有太多的錯誤。只要一次成功,以後都會按這個程式執行。第四 儲存過程主要是在伺服器上執行,減少...