《MySQL存儲過程》要點:
本文介紹了MySQL存儲過程,希望對您有用。如果有疑問,可以聯系我們。
存儲過程的好處:
業務邏輯被“暗藏”在數據庫里面,從而避免敏感的數據被透露
能簡化應用法式代碼
跨平臺性
如果您必需一次執行幾個語句,一個存儲過程比客戶端程序逐條地執行語句要快的多,因為不需要任何的來往返數據
CREATE
[DEFINER = {user | CURRENT_USER}]
PROCEDURE<name> (PARAMETER(S)...)
[characteristic(s)...] routine_body
The syntax for creating a function is:
CREATE
[DEFINER = {user | CURRENT_USER }]
FUNCTION sp_name ([parameter])
RETURNS type
[characteristic(s)...] routine_body
CREATE 創立
DEFINER 定義者,表現存儲過程或者函數的所有者,如果省略,講使用默認所有者(當前用戶)
RPOCEDURE<name> 表現創建一個名字為name的存儲過程
FUNCTION<name> 表現創建一個名稱為name的函數
【IN | OUT | INOUT】<parameter name> type
IN 指參數是一個輸入變量,它僅向過程提供一個值
OUT 指參數是只是用來存儲返回值
INOUT 指參數可用于輸入變量和返回值
parameter name(參數名稱)是Type的類型名
RETURNS 表現返回數據類型
DETERMINISTIC 確定性
NOT DETERMINISTIC 非確定性
實例一、
CREATE PROCEDURE user_avg(OUT average NUMERIC(5,2))
BEGIN
SELECT AVG(age) INTO average FROM users
END;
執行該存儲過程:
CALL user_avg(@a);
SELECT @a;
實例二、
CREATE FUNCTION is_young(uuname VARCHAR(64))
RETURNS BOOLEAN
DETERMINISTIC
BEGIN
DECLARE age_check DECIMAL(5,2);
DECLARE is_young BOOLEAN;
SELECT age INTO age_check FROM users WHERE username =uuname;
IF (age_check<40) THEN
SET is_young =1;
ELSE
SET is_young =0;
END IF;
RETURN(is_young);
END
數據庫存在的admin1的時候返回1
數據庫不存在的admin11的時候返回0
每天三分鐘,知識效率高.輕文章,更高效.
歡迎存眷同名微信公眾賬號DevOps24h.
《MySQL存儲過程》是否對您有啟發,歡迎查看更多與《MySQL存儲過程》相關教程,學精學透。維易PHP學院為您提供精彩教程。