首頁  >  文章  >  資料庫  >  【MySql教學】輕鬆帶你了解預存程序及使用方式

【MySql教學】輕鬆帶你了解預存程序及使用方式

帅杰杰
帅杰杰原創
2020-05-01 09:21:50182瀏覽

什麼是預存程序?

預存程序(Stored Procedure)是一種在資料庫中儲存複雜程序,以便外部程式呼叫的一種資料庫物件。

預存程序是為了完成特定功能的SQL語句集,經過編譯建立並保存在資料庫中,使用者可以透過指定預存程序的名字並給定參數(需要時)來呼叫。

預存程序思想上很簡單,就是資料庫SQL語言層面的程式碼封裝重複使用。

預存程序的優點:

  • #預存程序可封裝,並隱藏複雜的商業邏輯。

  • 預存程序可以回傳值,並且可以接受參數。

  • 預存程序無法使用select指令來運行,因為它是子程序,與檢視表,資料表或使用者定義函數不同。

  • 預存程序可以用在資料檢驗,強制實施商業邏輯等。

儲存過程的缺點:

  • #儲存過程,往往客製化於特定的資料庫上,因為支援的程式語言不同。切換到其他廠商的資料庫系統時,就需要重寫原有的預存程序。

  • 預存程序的效能調校與撰寫,受限於各種資料庫系統。

預存程序的建立與呼叫

  • #預存程序就是有名字的一段程式碼,用來完成一個特定的功能。

  • 建立預存程序保存在資料庫的資料字典中。

create procedure 存储过程名称(in|out|inout 参数名称 参数类型,……)
begin
过程体;
end

建立預存程序

create procedure getStudentCount()
begin
select count(*) as num from student where classid=8;
end

預存程序的查詢、修改、刪除

1 、查詢

查詢所有預存程序狀態

show procedure status;

查看對應資料庫下所有預存程序狀態

show procedure status where db="数据库名";

查看名稱包含Student的預存程序狀態

#
show procedure status where name like "%Student%";

查詢預存程序詳細程式碼

show create procedure 过程名;

2、修改

alter procedure 过程名([过程参数[,…]])过程体;

3、刪除

drop procedure 过程名;

註:不能在一個儲存過程中刪除另一個預存程序,只能呼叫另一個預存程序。

呼叫預存程序

mysql預存程序用call和過程名以及一個括號,括號裡面依需要,加入參數,參數包含輸入參數、輸出參數、輸入輸出參數呼叫。

call 存储过程名([过程参数[,...]])

以上是【MySql教學】輕鬆帶你了解預存程序及使用方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn