mysql數據庫---存儲過程小記

1 如何理解存儲過程
簡單的說,就是一組SQL語句集,功能強大,可以實現一些比較複雜的邏輯功能,類似於JAVA語言中的方法;
ps:存儲過程跟觸發器有點類似,都是一組SQL集,但是存儲過程是主動調用的,且功能比觸發器更加強大,觸發器是某件事觸發後自動調用;
有哪些特性
2 特性
有輸入輸出參數,可以聲明變量,有if/else, case,while等控制語句,通過編寫存儲過程,可以實現複雜的邏輯功能;
函數的普遍特性:模塊化,封裝,代碼複用;
速度快,只有首次執行需經過編譯和優化步驟,後續被調用可以直接執行,省去以上步驟;
3 創建簡單的存儲過程
3.1 if else

DROP PROCEDURE IF EXISTS testprocedure;
DELIMITER ;;
CREATE PROCEDURE testprocedure (in a INT,in b INT,OUT num INT)
BEGIN
DECLARE c INT;
IF a is NULL THEN SET a=0;
END IF;
IF b is NULL then SET b=0;
END IF;
SET c=a+b;
SET num=c;
END
;;
DELIMITER ;

這裏寫圖片描述

3.2 case

DROP PROCEDURE if EXISTS testcase;
DELIMITER ;;
CREATE PROCEDURE testcase(IN type INT)
BEGIN
    DECLARE output VARCHAR(500);
    CASE type
    WHEN 0 THEN
    SET output="參數爲0";
    WHEN 1 THEN
    SET output="參數爲1";
    ELSE
    SET output="參數是其他";
    END CASE;
    SELECT output;
END
;;
DELIMITER ;

這裏寫圖片描述

3 while

DROP PROCEDURE IF EXISTS testwhile;
delimiter;;
CREATE PROCEDURE testwhile()
BEGIN
    DECLARE a INT;
    DECLARE i INT;
    SET a=0;
    SET i=0;
    WHILE i<=100 DO
        set a=a+i;
        SET i=i+1;
    END WHILE;
SELECT a;
END
;;
delimiter ;

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章