More  

小編的世界 優質文選 資料

MySQL存儲過程小玩一下


2020年8月10日 - 資料小編 小碼農談IT 
   

軟件工程師

這塊說明可能乍一看比較亂,直接來一個例子幫助理解。

小例子

武器生產好了,小馬自然就磨刀霍霍了。用navicat來搞一個玩玩。

1、首先我們建一個表待用(洗幹淨等著):

2、然後我們拿出武器准備戰鬥。我們的目標是,創建一個存儲過程,對指定id的學生進行分數加1。這是在作弊,哈哈哈。

如上圖,我們點函數按鈕,然後選擇存儲過程PROCEDURE,寫上我們的“作弊”語句。這裏為啥和教程裏的語法不一樣呢?教程裏命名需要delimiter $$ 將分號重新定義才能使存儲過程中的分號不被直接解析。是的,這裏是navicat給你做好了,你只關心好你的邏輯語句就好了。搞完我們保存。

3、最後就是“嘿嘿嘿”,我們跑一下這個存儲過程來對大娃這個學生(傳參id為1)的分數加一。

跑完後查看表數據,大娃的分數加1。就是我們預期的結果。

總結

這裏只是一個簡單的入門例子,實際應用絕對不是這麼得簡單應用,要比這個複雜得多。

優點:存儲過程可接受參數dao、輸出參數、返回單個或多個結果集及返回值。向程序返回錯誤原因。一次編譯多次運行,你如果把sql語句寫在客戶端,每次運行都要編譯,而存儲過程不需要,效率比較高,存儲過程主要是在服務器上運行,減少對客戶機的壓力,可以在單個存儲過程中執行一系列SQL語句,同時可以實體封裝和隱藏數據邏輯。

弊端:存儲過程,往往定制化於特定的數據庫上,因為支持的編程語言不同。當切換到其他廠商的數據庫系統時,需要重寫原有的存儲過程。對客戶端邏輯代碼不透明,有時會不便於代碼閱讀和查問題,因為不知道存儲過程裏寫了啥。

感謝閱讀,歡迎指正。

  大家在看