但是在資料庫的實際操作中,常常會有一個完整的操作需要多條 SQL 語句處理多個表才能完成。
例如,為了確認學生能否畢業,需要同時查詢學生檔案表、成績表和綜合表,此時就需要使用多條 SQL 語句來針對幾個資料表完成這個處理要求。預存程序可以有效地完成這個資料庫操作。
預存程序是資料庫儲存的一個重要的功能,但是 MySQL 在 5.0 以前並不支援預存程序,這使得 MySQL 在應用程式上大打折扣。還好 MySQL 5.0 終於開始已經支援預存程序,這樣即可以大幅提高資料庫的處理速度,同時也可以提高資料庫程式設計的彈性。
預存程序是一組為了完成特定功能的 SQL 語句集合。使用預存程序的目的是將常用或複雜的工作預先用 SQL 語句寫好並用一個指定名稱儲存起來,這個過程經過編譯和優化後儲存在資料庫伺服器中,因此稱為預存程序。當日後需要資料庫提供與已定義好的預存程序的功能相同的服務時,只需呼叫「CALL預存程序名稱」即可自動完成。
常用操作資料庫的 SQL 語句在執行的時候需要先編譯,然後再執行。預存程序則採用另一種方式來執行 SQL 語句。
一個預存程序是一個可程式化的函數,它在資料庫中建立並保存,一般由 SQL 語句和一些特殊的控制結構組成。當希望在不同的應用程式或平台上執行相同的特定功能時,預存程序尤其合適。
預存程序通常有以下優點:
1) 封裝性
預存程序被建立後,可以在程式中被多次調用,而不必重新編寫該預存程序的SQL 語句,並且資料庫專業人員可以隨時對預存程序進行修改,而不會影響到調用它的應用程式原始碼。
2) 可增強SQL 語句的功能和彈性
預存程序可以用流程控制語句寫,有很強的彈性,可以完成複雜的判斷和較複雜的運算。
3) 可減少網路流量
由於預存程序是在伺服器端運行的,且執行速度快,因此當客戶電腦上呼叫該預存程序時,網路中傳送的只是該呼叫語句,可降低網路負載。
4) 高效能
儲存程序執行一次後,產生的二進位程式碼就駐留在緩衝區,在以後的呼叫中,只需要從緩衝區中執行二進位代碼即可,從而提高了系統的效率和效能。
5) 提高資料庫的安全性和資料的完整性
使用預存程序可以完成所有資料庫操作,並且可以透過程式設計的方式控制資料庫資訊存取的權限。
以上是mysql儲存過程是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!