MySQL儲存過程的建立和使用

要告別理想怎算活過發表於2020-12-31

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

相關文章