Mysql 存儲過程聲明及使用


存儲過程(Stored Procedure):是一組用於完成特定數據庫功能的sql語句集,該sql語句集經過編譯后存儲在數據庫系統中,在使用的時候,用戶通過調用指定已經定義好的存儲過程並執行它,從而完成一系列的數據庫操作;

1.聲明創建一個存儲過程

# 定義基本存儲過程
DROP PROCEDURE IF EXISTS test;    #如果存在指定存儲過程則刪除它
DELIMITER //    # 定義存儲過程結束符,
CREATE PROCEDURE test()    # 創建存儲過程
    BEGIN         # 存儲過程要執行的操作
        SELECT 'Hello World!'
    END//    
    
CALL test();        # 調用存儲過程

2.聲明變量

#存儲過程變量的聲明和使用
DROP PROCEDURE IF EXISTS test;    #如果存在指定存儲過程則刪除它
DELIMITER //            # 定義存儲過程結束符,
CREATE PROCEDURE test()
BEGIN
    DECLARE aa VARCHAR(20);    # 定義變量 
    DECLARE bb INT DEFAULT 0;    # 定義int 類型變量 默認為0;
    SET aa = '張三';    # 變量賦值
    SELECT aa;        # 輸出變量
    SELECT bb;        # 輸出變量
END//
CALL test();            # 調用存儲過程

3.流程控制語句的聲明使用

#存儲過程流程控制語句使用
DROP PROCEDURE IF EXISTS test_2;
DELIMITER //
CREATE PROCEDURE test_2()
BEGIN 
    DECLARE aa INT;        # 定義變量
    DECLARE bb INT;        # 定義變量
    SET aa = 20;        # 變量賦值
    SET bb = 20;        # 變量賦值
    IF aa > bb THEN        # 判斷
        SELECT aa;
    ELSEIF aa < bb THEN    # else if 可以有多個
        SELECT bb;
    ELSE             # else 只能存在一個
        SELECT aa+bb;
    END IF;            # 結束if 語句
END//
CALL test_2();            # 調用存儲過程

4.loop 循環語句的使用

#loop 循環語句的使用
# 輸出1-100之間所有數字之和
DROP PROCEDURE IF EXISTS test_3;
DELIMITER //
CREATE PROCEDURE test_3()
BEGIN 
DECLARE aa INT DEFAULT 0;    # 定義變量 默認值為0
DECLARE sums INT DEFAULT 0;    # 定義變量 默認值為0
loopName:LOOP            # 循環開始:loopName 定義循環名
    SET aa = aa + 1;    # 設置變量自增
    SET sums = sums + aa;    
    IF aa >= 100 THEN    # loop 需要設置跳出條件,不然會變成死循環
        LEAVE loopName;    # 結束循環
    END IF;    # 結束if 語句
END LOOP;    # 結束loop 循環語句
SELECT sums;    # 輸出結果
END//
CALL test_3();    # 調用存儲過程

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM