在mysql中,可以使用CALL語句來調用存儲過程,該語句接收存儲過程的名字以及需要傳遞給它的任意參數,語法為“CALL sp_name([parameter[…]]);”。
本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
調用存儲過程
MySQL 中使用 CALL 語句來調用存儲過程。調用存儲過程后,數據庫系統將執行存儲過程中的 SQL 語句,然后將結果返回給輸出值。
CALL 語句接收存儲過程的名字以及需要傳遞給它的任意參數,基本語法形式如下:
CALL?sp_name([parameter[...]]);
其中,sp_name 表示存儲過程的名稱,parameter 表示存儲過程的參數。
示例1:
創建存儲過程
-
創建名稱為 ShowStuScore 的存儲過程,存儲過程的作用是從學生成績信息表中查詢學生的成績信息
mysql>?DELIMITER?// mysql>?CREATE?PROCEDURE?ShowStuScore() ????->?BEGIN ????->?SELECT?*?FROM?tb_students_score; ????->?END?// Query?OK,?0?rows?affected?(0.09?sec)
結果顯示 ShowStuScore 存儲過程已經創建成功。
-
創建名稱為 GetScoreByStu 的存儲過程,輸入參數是學生姓名。存儲過程的作用是通過輸入的學生姓名從學生成績信息表中查詢指定學生的成績信息
mysql>?DELIMITER?// mysql>?CREATE?PROCEDURE?GetScoreByStu ????->?(IN?name?VARCHAR(30)) ????->?BEGIN ????->?SELECT?student_score?FROM?tb_students_score ????->?WHERE?student_name=name; ????->?END?// Query?OK,?0?rows?affected?(0.01?sec)
調用存儲過程
-
調用名稱為 ShowStuScore和GetScoreByStu的存儲過程
mysql>?DELIMITER?; mysql>?CALL?ShowStuScore(); +--------------+---------------+ |?student_name?|?student_score?| +--------------+---------------+ |?Dany?????????|????????????90?| |?Green????????|????????????99?| |?Henry????????|????????????95?| |?Jane?????????|????????????98?| |?Jim??????????|????????????88?| |?John?????????|????????????94?| |?Lily?????????|???????????100?| |?Susan????????|????????????96?| |?Thomas???????|????????????93?| |?Tom??????????|????????????89?| +--------------+---------------+ 10?rows?in?set?(0.00?sec) Query?OK,?0?rows?affected?(0.02?sec) mysql>?CALL?GetScoreByStu('Green'); +---------------+ |?student_score?| +---------------+ |????????????99?| +---------------+ 1?row?in?set?(0.03?sec) Query?OK,?0?rows?affected?(0.03?sec)
因為存儲過程實際上也是一種函數,所以存儲過程名后需要有( )符號,即使不傳遞參數也需要。
【相關推薦:mysql視頻教程】
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦