MySQL存儲過程:輸出某個值
存儲過程是一種封裝了一系列SQL語句的程序,類似于面向對象編程中的函數。MySQL存儲過程的輸出可以是結果集、參數值或者變量值。本文將介紹如何在MySQL存儲過程中輸出某個值。
創建存儲過程
在創建存儲過程之前,需要先創建一個數據庫。我們創建一個名為student的數據庫,并在該數據庫中創建一張名為score的成績表。具體的建表語句如下:
CREATE DATABASE student;
USE student;
CREATE TABLE score (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20), score INT);
接著,我們向score表中插入3條學生記錄。具體的插入語句如下:
INSERT INTO score (name, score) VALUES ('小明', 90);
INSERT INTO score (name, score) VALUES ('小紅', 80);
INSERT INTO score (name, score) VALUES ('小剛', 70);
創建輸出值的存儲過程
我們創建一個名為mysum的存儲過程,該存儲過程輸入一個學生姓名,輸出該學生總成績。存儲過程的具體語句如下:
CREATE PROCEDURE mysum(IN pname VARCHAR(20), OUT total INT)
BEGIN
SELECT score INTO total FROM score WHERE name = pname;
END;
執行存儲過程
執行mysum存儲過程,輸入參數為小明,輸出該學生總成績。執行語句如下:
SET @total = 0;
CALL mysum('小明', @total);
SELECT @total;
輸出結果如下:
+-------+
@total
+-------+
90
+-------+
可以看到,存儲過程成功輸出了學生小明的總成績90。
總結
本文介紹了如何在MySQL存儲過程中輸出某個值。通過上述示例,我們可以發現存儲過程的優點:封裝性強、可復用性高、能夠提高SQL語句執行效率等。