MySQL复习资料(七)——MySQL-存储过程
📋導讀📋
💝博客主頁:紅目香薰_CSDN博客-大數據,MySQL,Java領域博主💝
?本文由在下【紅目香薰】原創,首發于CSDN?
🤗2022年最大愿望:【服務百萬技術人】🤗
📋前言📋
本文屬于系列文章,分別為:
MySQL復習資料(一)——MySQL環境安裝
MySQL復習資料(二)——MySQL-DDL語句
MySQL復習資料(三)——MySQL-DML語句
MySQL復習資料(四)——MySQL-聚合函數
MySQL復習資料(五)——MySQL-索引
MySQL復習資料(六)——MySQL-多表聯合查詢
MySQL復習資料(七)——MySQL-存儲過程
MySQL復習資料(八)——MySQL-事務
MySQL復習資料(九)——MySQL-圖形化工具使用
📋正文📋
MySQL復習資料(七)——MySQL-存儲過程
目錄
存儲過程的概念
存儲過程的創建與執行
創建存儲過程示例
使用存儲過程
存儲過程的概念
存儲過程是數據中的一個重要的對象,它是在大型數據庫系統中一組為了完成特定功能的SQL語句集,在第一次使用經過編譯后,再次調用就不需要重復編譯,因此執行效率比較高。它與函數在數據庫中的異同點如下:
(1)存儲過程與函數的相同點在于,它們的目的都是為了可重復地執行數據庫SQL語 句的集合,并且都是經過一次編譯后,后面再次需要時直接執行即可;
(2)存儲過程與函數的不相同點有4個,具體如下:
語法中實現的標識符不同,存儲過程使用PROCEDURE,函數為FUNCTION。
存儲過程在創建時沒有返回值,而函數在定義時必須設置返回值。
存儲過程沒有返回值類型,且不能將結果直接賦值給變量;而函數定義時需要設置返回值類型,且在調用時必須將返回值賦給變量。
存儲過程須通過CALL進行調用,不能使用SELECT調用;而函數則可在SELECT語句中使用
存儲過程的創建與執行
存儲過程在創建時與創建函數相同,首先都需要臨時修改語句結束符號。然后再利用CREATE語句進行創建,其基本語法格式如下:
DELIMITER 新結束符號 CREATE PROCEDURE 過程名字([[ IN | OUT | INOUT] 參數名稱 參數類型]) BEGIN過程體 END在上述語法中,創建存儲過程的關鍵字為PROCEDURE,在為存儲過程設置參數時,在參數名前還可以指定參數的來源及用途,可選值分別為IN(默認值)、OUT和INOUT。
IN、OUT、INOUT三者的區別如下所示: IN:表示輸入參數,即參數是在調用存儲過程時傳入到存儲過程里面使用,傳入的數據可以是直接數據(如5),也可以是保存數據的變量。 OUT:表示輸出參數,初始值為NULL,它是將存儲過程中的值保存到OUT指定的參數中,返回給調用者。 INOUT:表示輸入輸出參數,即參數在調用時傳入到存儲過程,同時在存儲過程中操作之后,又可將數據返回為調用者。
創建存儲過程示例
delimiter $$ create procedure test_fun(in in_age int) beginselect * from users where age=in_age; end $$ delimiter ; #查詢存儲過程是否創建成功 show procedure status like 'test_fun';使用存儲過程
call test_fun(22);可以通過索引的對照實驗看看存儲過程具體怎么應用,鏈接地址如下:
mysql索引_效率測試(包含測試sql腳本300萬條數據),可用作教學案例。_紅目香薰-CSDN博客
總結
以上是生活随笔為你收集整理的MySQL复习资料(七)——MySQL-存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL复习资料(六)——MySQL-
- 下一篇: MySQL复习资料(八)——MySQL-