SQL儲存過程,函式
阿新 • • 發佈:2018-12-11
儲存過程和函式的區別: 儲存過程可以沒有返回值,函式必須有返回值;
// 語法
CREATE PROCEDURE 儲存過程名(引數列表)
BEGIN
儲存過程體;
END
引數模式 IN , OUT , INOUT
舉例:IN name VARCHAR(20)
呼叫:CALL 儲存過程名
1、 IN 引數 DELIMITER $ // 定義結束符號 CREATE PROCEDURE test01(IN name VARCHAR(20)) BEGIN DECLARE result INT DEFAULT 0; # 宣告並初始化 select count(*) into result # 賦值 from stu s where s.name = name ; select result; END $ 呼叫: CALL test01('小明') $ 2、 OUT 引數 CREATE PROCEDURE test02(IN name VARCHAR(20), OUT bname VARCHAR(20) ) BEGIN select s.bname into bname from stu s where s.name = name ; END $ 呼叫: CALL test02('小白',@bname)$ select @bame$ 3、 INOUT 引數 CREATE PROCEDURE test03(INOUT a INT,INOUT b INT) BEGIN SET a = a + 10 ; SET b = b + 10 ; END $ 呼叫: set @a=10$ set @b=20$ call test03(@a,@b)$ select @a,@b$ 4、刪除儲存過程 DROP PROCEDURE 存錯過程名; 5、檢視儲存過程資訊 SHOW CREATE PROCEDURE 存錯過程名;
函式語法 CREATE FUNCTION 函式名(引數列表)RETURNS 返回型別 BEGIN 函式體 END 呼叫 select 函式名(引數列表) 1、有引數返回 CREATE FUNCTUIN test01 (name VARCHAR(20) ) RETURNS DOUBLE BEGIN SET @sal = 0; SELECT id INTO @sal FROM stu WHERE last_name = name ; RETURN @sal; END select test01('xiaoming') $ 檢視函式 SHOW CREATE FUNCTION 函式名; 刪除函式 DROP FUNCTION 函式名;
迴圈語句
if 函式 1、語法:if(表示式1,表示式2,表示式3) 如果表示式1成立,則返回表示式2的值,否則返回表示式3的值; 2、語法: IF 條件1 THEN 語句1或返回值; ELSEIF 條件2 THEN 語句2; ...... END IF; case 結構 1、等值判斷 CASE 變數|表示式|欄位 WHEN 要判斷的值 THEN 返回值1; WHEN 要判斷的值 THEN 返回值2; ....... ELSE 要返回的值; END CASE; 2、 區間判斷 CASE WHEN 要判斷的條件1 THEN 返回值1; WHEN 要判斷的條件2 THEN 返回值2; ....... ELSE 要返回的值; END CASE; 迴圈結構 1、while迴圈 WHILE 條件 DO 迴圈體 END WHILE; 舉例: CREATE PROCEDURE test01 (IN count INT ) BEGIN DECLARE i INT DEFAULT 1; WHILE i<count DO INSERT INTO admin(name,pwd) VALUES ('ROSE'+i,'123456'); SET i = i + 1; END WHILE; END PS:LEAVE 結束迴圈 ITERATE 結束本次迴圈