過程:封裝起來的若干條語句,調用時這些封裝體執行。把此過程存儲到數據庫中即存儲過程.
函數:是一個有返回值的“過程”。
過程:沒有返回值的函數。
存儲過程的優點:
DELIMITER $$ //定義分隔符
CREATE PROCEDURE p() //p爲過程名
BEGIN
--sql語句 //封裝語句體
END $$
CREATE PROCEDURE p1()
BEGIN
DECLARE age INT DEFAULT 18;
DECLARE height INT DEFAULT 180;
SET age := age +20;
SELECT CONCAT('年齡是', age, '身高是', height);
END$$
CREATE PROCEDURE p2()
BEGIN
DECLARE age INT DEFAULT 18;
DECLARE height INT DEFAULT 180;
IF age >= 18 THEN
SELECT "已成年";
ELSE
SELECT "未成年";
END IF;
END$$
CREATE PROCEDURE p3()
BEGIN
DECLARE total INT DEFAULT 0;
DECLARE num INT DEFAULT 0;
WHILE num<=100 DO
SET total := num + total;
SET num := num + 1;
END WHILE;
SELECT total;
END$$
CREATE PROCEDURE p4()
BEGIN
DECLARE num INT DEFAULT 0;
SET num := FLOOR(4*RAND());
CASE num
WHEN 1 THEN SELECT "cat";
WHEN 2 THEN SELECT "dog";
WHEN 3 THEN SELECT "sheep";
ELSE SELECT "pig";
END CASE;
END$$
CREATE PROCEDURE p5()
BEGIN
DECLARE num INT DEFAULT 0;
DECLARE total INT DEFAULT 0;
REPEAT
SET total = num + total;
SET num := num + 1;
UNTIL num>100 END REPEAT;
SELECT total;
END$$