MySQL預存程序詳解 mysql 預存程序,mysql預存程序詳解
/*建立預存程序*/
/*建立預存程序的時候要事先指定一個結束標記*/
DELIMITER $
CREATE PROCEDURE test_pro1()
BEGIN
SELECT * FROM address;
END $
/*調用預存程序*/CALL test_prol();
DELIMITER $
CREATE PROCEDURE test_pro1()
BEGIN
SELECT * FROM address;
SELECT * FROM book;
END $
CALL test_pro2();
/*參數帶有參數的預存程序
IN:表示輸入參數,可以攜帶資料到預存程序中去
OUT:表示返回參數,可以從預存程序中返回結果
INOUT:表示輸入輸出參數,既可以輸入參數,又可以返回結果
*/
DELIMITER $
CREATE PROCEDURE test_pro_in(IN id INT)
BEGIN
select * from address where id=id;
END $
CALL test_pro_in(7369);
/*帶有多個輸入參數的預存程序
*/\
DELIMITER $
CREATE PROCEDURE test_pro_inmore(IN id INT,IN id2 INT)
BEGIN
SELECT * FROM address WHERE empno=id OR empno=id2;
END $
CALL test_pro_inmore(7369,7499);
DELIMITER $
CREATE PROCEDURE test_pro_out(OUT num INT)
BEGIN
/*給輸出的參數賦值,關鍵字set*/
SET num=10;
END $
CALL test_pro_out(@val);//這個地方的變數是會話變數,會話變數是以@符號開頭
SELECT @val;
/*mysql資料庫中的變數:1、全域變數2、局部變數3、會話變數*/SHOW VARIABLES;//查詢所有的全域變數
SHOW VARIABLES LIKE 'char%' //模糊查詢全域變數
select character_set_client;//單個查詢的全域變數
set @vail='peter';//定義一個會話變數的時候,一定要指定值!
select @vail;
//局部變數的值在begin和end之間DELIMITER $
CREATE PROCEDURE test_pro_loc()
BEGIN
DECLARE i INT DEFAULT 1;
END $
//帶有輸入輸出參數的預存程序,關鍵字inout
DELIMITER $
CREATE PROCEDURE test_pro_inout(INOUT n INT)
BEGIN
SET n=100;
END $
SET @aaaaa=10000;
SELECT @aaaaa;
CALL test_pro_inout(@aaaaa);
SELECT @aaaaa;
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。