Mysql存儲例程、存儲過程和存儲函數

參考官方給出的:https://dev.mysql.com/doc/refman/8.0/en/stored-routines.html
Mysql的在線演示平臺:http://mysqltutorial.org//tryit/

Mysql支持存儲例程(Stored Routines)。存儲例程是一系列保存在Mysql服務器上的SQL語句集合。一旦存儲例程被創建,客戶端不需要再編寫單獨的SQL語句,而是,可以直接調用存儲例程。存儲例程包含了存儲過程(Stored Procedures)和存儲函數(Stored Functions)。

再某些場景下使用存儲例程:
(1) 當在不同的平臺上,多語言編寫的多客戶端,執行相同的數據庫操作的時候;
(2) 當安全至上的時候,比如銀行,會使用存儲過程和函數替代所有的通用操作。這樣會提供一個一致和安全的環境,存儲例程會日志記錄下每一個操作。用戶和應用程序將不能直接訪問數據庫表,而只能執行特定的存儲例程。


存儲過程的優點

1 可以避免開發人員重復的編寫相同的SQL語句。
2 存儲過程和函數是在Mysql服務器中存儲和執行的,可以減少客戶端和服務器端的數據傳輸。
3 可以復用

存儲過程的缺點

1 占用CPU
2

加載樣本數據到Mysql中;

創建存儲過程

存儲過程的創建是通過SQL關鍵字create procedure
比如,在產品表上創建一個名稱為——GetAllProducts的存儲過程。該存儲過程主要實現的功能是獲取產品表——products中的全部產品。具體的SQL如下:

DELIMITER //
 CREATE PROCEDURE GetAllProducts()
   BEGIN
   SELECT *  FROM products;
   END //
 DELIMITER ;

以上是在mysql的控制臺客戶端執行的命令。如果有圖形化的客戶端,如Mysql Workbench,可以直接在里面點擊創建存儲過程。

存儲過程的變量

需要知道如何聲明和使用存儲過程的變量,另外,還需要了解變量生命范圍。

變量的聲明

語法如下:

declare variable_name datatype(size) default default_value

變量的賦值

有兩種方式:set和select into

變量的范圍

  • 如果在存儲過程中聲明的變量,則其在整個存儲過程中都有用的;
  • 如果在Begin End中聲明的,則只在當前的聲明中有用。
  • 如果聲明的時候添加了@標志,則在Session結束之前都有用的;

變量做什么用

存儲過程的參數

參數的聲明

參數的作用

參數的使用

創建函數

定義條件和處理程序

變量的使用

光標的使用

查看存儲過程和函數

調用存儲過程和函數

修改存儲過程和函數

刪除存儲過程和函數

參考

視頻地址:http://www.phpxs.com/post/2740/
國外的一篇詳細介紹Mysql存儲過程的:http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容