首頁 > mysql教程 閱讀:0更新時間:2020-03-28 04:08:08

MySQL存儲過程簡介

我們前面所學習的 mysql 語句都是針對一個表或幾個表的單條 SQL 語句,但是在數據庫的實際操作中,并非所有操作都那么簡單,經常會有一個完整的操作需要多條 SQL 語句處理多個表才能完成。例如,為了確認學生能否畢業,需要同時查詢學生檔案表、成績表和綜合表,此時就需要使用多條 SQL 語句來針對幾個數據表完成這個處理要求。存儲過程可以有效地完成這個數據庫操作。

存儲過程是數據庫存儲的一個重要的功能,但是 MySQL 在 5.0 以前并不支持存儲過程,這使得 MySQL 在應用上大打折扣。好在 MySQL 5.0 終于開始已經支持存儲過程,這樣即可以大大提高數據庫的處理速度,同時也可以提高數據庫編程的靈活性。

存儲過程是一組為了完成特定功能的 SQL 語句集合。使用存儲過程的目的是將常用或復雜的工作預先用 SQL 語句寫好并用一個指定名稱存儲起來,這個過程經編譯和優化后存儲在數據庫服務器中,因此稱為存儲過程。當以后需要數據庫提供與已定義好的存儲過程的功能相同的服務時,只需調用“CALL存儲過程名字”即可自動完成。

常用操作數據庫的 SQL 語句在執行的時候需要先編譯,然后執行。存儲過程則采用另一種方式來執行 SQL 語句。

一個存儲過程是一個可編程的函數,它在數據庫中創建并保存,一般由 SQL 語句和一些特殊的控制結構組成。當希望在不同的應用程序或平臺上執行相同的特定功能時,存儲過程尤為合適。

存儲過程通常有如下優點:

1) 封裝性

存儲過程被創建后,可以在程序中被多次調用,而不必重新編寫該存儲過程的 SQL 語句,并且數據庫專業人員可以隨時對存儲過程進行修改,而不會影響到調用它的應用程序源代碼。

2) 可增強 SQL 語句的功能和靈活性

存儲過程可以用流程控制語句編寫,有很強的靈活性,可以完成復雜的判斷和較復雜的運算。

3) 可減少網絡流量

由于存儲過程是在服務器端運行的,且執行速度快,因此當客戶計算機上調用該存儲過程時,網絡中傳送的只是該調用語句,從而可降低網絡負載。

4) 高性能

存儲過程執行一次后,產生的二進制代碼就駐留在緩沖區,在以后的調用中,只需要從緩沖區中執行二進制代碼即可,從而提高了系統的效率和性能。

5) 提高數據庫的安全性和數據的完整性

使用存儲過程可以完成所有數據庫操作,并且可以通過編程的方式控制數據庫信息訪問的權限。

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

国产亚洲欧美日韩