首頁 >資料庫 >mysql教程 >mysql中怎麼呼叫預存程序

mysql中怎麼呼叫預存程序

青灯夜游
青灯夜游原創
2022-01-24 16:45:2712625瀏覽

在mysql中,可以使用CALL語句來呼叫預存程序,該語句接收預存程序的名字以及需要傳遞給它的任意參數,語法為「CALL sp_name([parameter[...]]) ;」。

mysql中怎麼呼叫預存程序

本教學操作環境: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影片教學

#

以上是mysql中怎麼呼叫預存程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn