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) 提高數據庫的安全性和數據的完整性

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

 

存儲過程使用學習:https://www.w3cschool.cn/sql/sql-storage.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM