mysql 儲存過程

2021-09-30 18:55:10 字數 1549 閱讀 8187

儲存過程(stored procedure)是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,儲存在資料庫中,經過第一次編譯後呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件。

簡要儲存過程和函式是事先經過編譯並儲存在資料庫中的一段sql語句的集合。

函式必須有返回值,而儲存過程沒有。

儲存過程的引數可以是in,out,inout,型別,而函式只能是in。

儲存過程只在建立時進行編譯,而sql語句每次執行都需要編譯,所以儲存過程可以提高資料庫執行速度。

簡化複雜操作,結合事務一起封裝。

復用性好;

安全性高,可指定儲存過程的使用權。

語法:

create procedure 儲存過程名(引數體)

begin

sql語句;

end儲存過程的引數形式:[in | out | inout]引數名 型別

in 輸入引數

out 輸出引數

inout 輸入輸出引數

//案例

delimiter $$

create procedure p1()

begin

select * from t_su;

end $$

call p1();

1)引數 in 型別

delimiter	$$

create procedure p2(in a int)

begin

select * from t_su where stu_id = a;

end $$

call p2(2);

2)引數 out 型別

delimiter	$$

create procedure p3(out a int)

begin

select count(*) into a from t_su ;

end $$

call p3(@a);

select @a;

delimiter	$$

create procedure p4(out a int,in b int)

begin

select count(*) into a from t_su where stu_id = b;

end $$

call p4(@a,2);

select @a;

3)引數 inout 引數

delimiter	//

create procedure p5(inout p int)

begin

if(p is not null)then

set p = p+1;

else

set p = 10;

end if;

end //

call p5(@p);

select @p;

mysql儲存過程 MySQL儲存過程

在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...

mysql 儲存過程 mysql 儲存過程

建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...

mysql 儲存過程 MySQL儲存過程

目錄 儲存過程 簡介是一組為了完成特定功能的sql語句集合 比傳統sql速度更快 執行效率更高 儲存過程的優點 執行一次後,會將生成的二進位制 駐留緩衝區,提高執行效率 sql語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...