MySQL儲存過程的建立和使用
阿新 • • 發佈:2021-01-10
① 利用儲存過程查詢 Student表中所有人的記錄
/* 建立儲存過程的時候,END後只加一個分號 */
DROP PROCEDURE IF EXISTS prol;
CREATE PROCEDURE prol()
BEGIN
SELECT * FROM student;
END;
#呼叫儲存過程
CALL prol;
在函式中
檢視 prol:
呼叫結果:
② 利用儲存過程查詢 Student表中某學號的記錄
/* 建立儲存過程的時候,END後只加一個分號 */
DROP PROCEDURE IF EXISTS prol2;
CREATE PROCEDURE prol2(a CHAR(9))
BEGIN
SELECT * FROM student WHERE Sno = a;
END;
#呼叫儲存過程
CALL prol2('200215121');
在函式中
檢視 prol2:
呼叫結果:
③ 利用儲存過程查詢 SC表中某學號、某門課程的記錄
/* 建立儲存過程的時候,END後只加一個分號 */
DROP PROCEDURE IF EXISTS prol3;
CREATE PROCEDURE prol3(a CHAR(9), b CHAR(4))
BEGIN
SELECT * FROM sc WHERE Sno = a AND Cno = b;
END;
#呼叫儲存過程
CALL prol3(200215121, 1);
在函式中
檢視 prol3:
呼叫結果:
④ 建立一個儲存過程 prol4,將課程中某門課程的學分修改為指定的值,其中某門課程的課程號、指定的值通過引數傳遞。並多次呼叫執行該儲存過程來修改不同的課程的學分值。
/* 建立儲存過程的時候,END後只加一個分號 */
DROP PROCEDURE IF EXISTS prol4;
CREATE PROCEDURE prol4(a CHAR(9), b INT)
BEGIN
UPDATE course SET Ccredit = b WHERE Cno = a;
END;
#呼叫儲存過程
CALL prol4(1, 10);
在函式中
檢視 prol4:
呼叫結果:
⑤ 建立一個帶返回值的儲存過程,返回某人的平均成績
/* 建立儲存過程的時候,END後只加一個分號 */
DROP PROCEDURE IF EXISTS prol5;
CREATE PROCEDURE prol5(IN a CHAR(10), OUT c DOUBLE)
BEGIN
SELECT AVG(Grade) FROM sc WHERE Sno = a;
END;
#呼叫儲存過程
CALL prol5(200215121, @c);
在函式中
檢視 prol5:
呼叫結果: