1. 程式人生 > 其它 >MySQL儲存過程的建立和使用

MySQL儲存過程的建立和使用

技術標籤:資料庫mysql資料庫

① 利用儲存過程查詢 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:
囈語程式緣

呼叫結果:
囈語程式緣