存儲過程
存儲過程是一組為了完成特定功能的 SQL 語句集合。使用存儲過程的目的是将常用或複雜 的工作,預先用 SQL語句寫好并用一個指定名稱存儲起來,這個過程經編譯和優化後存儲 在數據庫服務器中,因此稱為存儲過程。以後需要數據庫提供與已定義好的存儲過程的功 能相同的服務時,隻需用 CALL 語句來調用存儲過程名字,即可自動完成命令。
優點内存中會保留該存儲過程,當數據庫服務器再次調用該存儲過程時,可以直接從内存中進行讀取,
所以執行速度更快。
2.降低了網絡通信量。使用存儲過程可以實現客戶機隻需通過網絡向服務器發出存儲過程的名字和參
數,就可以執行許多條的 SQL 語句。在存儲過程包含上百行的 SQL 語句時,執行性能尤為明顯。
3.業務邏輯可以封裝在存儲過程中,方便實施企業規則。利用存儲過程将企業規則的運算程序存儲在
數據庫服務器中,由 RDBMS 統一來管理,當用戶的規則發生變化時,可以隻修改存儲過程,無需修
改其它的應用程序,這樣不僅容易維護,而且簡化了複雜的操作。
創建創建存儲過程,需要使用 CREATE PROCEDURE 語句,基本語法格式如下。
CREATE PROCEDURE proc_ name ([proc_ parameter[,...]])
[characteristic ...] routine_ body
參數解釋:
(1)proc_parameter 指定存儲過程的參數列表,列表形式如下。
[IN| OUT| INOUT] param_name type
其中:
⚫ IN 表示輸入參數;
⚫ OUT 表示輸出參數;
⚫ INOUT 表示既可以輸入也可以輸出;
⚫ param_name 表示參數名稱,
⚫ type 表示參數的類型,該類型可以是 mysql 數據庫中的任意類型。
(2)characteristics 指定存儲過程的特性。
(3) routine_body是 SQL代碼的内容,可以用 BEGIN...END 來表示SQL代碼的開始和結束。
示例
1、不帶參數
查詢每個部門的人數
2、帶輸入參數
查詢指定部門的員工信息
3、帶輸出參數
查詢男員工的人數,并輸出
注意
由括号包圍的參數列必須總是存在。如果沒有參數,也該使用一個空參數列()。每個參數 默認都是一個 IN 參數。要指定為其他參數,可在參數名之前使用關鍵詞 OUT或 INOUT。
參數不要和表的字段名一樣
調用
CALL語句調用一個使用 CREATE PROCEDURE 創建好的存儲過程,基本語法如下。
CALL sp_ name([ parameter[,...]])
我們還是先創建一個存儲過程:
查詢指定部門的平均年齡,并調用
調用
查看
查看存儲過程有三種方式
show procedure status
show create procedure
INFORMATION_ SCHEMA. ROUTINES
删除
DROP PROCEDURE pro_ name;
今天我的分享就到這裡,大家有沒有什麼好的學習方法呢?歡迎來留言評論,和我們一起交流。如果喜歡我的文章,也歡迎大家關注、點贊、轉發。我是丫丫,一個專注分享項目實戰技能的IT從業者。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!