存储过程内基础语法
學生表
1.定義變量及變量賦值方式
DELIMITER ; 分號前面必須要有一個空格
<1>DECLARE 變量名 數據類型 [DEFAULT 默認值];
需求-- 定義一個int類型變量,并賦默認值為10
DELIMITER $$ CREATE PROCEDURE pro_test1() -- 沒有; BEGIN-- 定義變量DECLARE num INT DEFAULT 10;-- 使用變量SELECT num; END $$ DELIMITER ;調用CALL pro_test1();存儲過程結果:
<2>SET 變量名 = 變量值;
需求–定義一個varchar類型變量并賦值
DELIMITER $CREATE PROCEDURE pro_test2() BEGIN-- 定義變量DECLARE NAME VARCHAR(10);-- 為變量賦值SET NAME = '存儲過程';-- 使用變量SELECT NAME; END$ DELIMITER ;調用CALL pro_test2();存儲過程結果:
<3>SELECT 列名 INTO 變量名 FROM 表名 [WHERE 條件];
需求–定義兩個int變量,用于存儲男女同學的總分數
DELIMITER $CREATE PROCEDURE pro_test3() BEGIN-- 定義兩個變量DECLARE men,women INT;-- 查詢男同學的總分數,為men賦值SELECT SUM(score) INTO men FROM student WHERE gender='男';-- 查詢女同學的總分數,為women賦值SELECT SUM(score) INTO women FROM student WHERE gender='女';-- 使用變量SELECT men,women; END$DELIMITER ;調用CALL pro_test3();存儲過程結果:
2.if語句
if語句IF 判斷條件1 THEN 執行的sql語句1;[ELSEIF 判斷條件2 THEN 執行的sql語句2;]...[ELSE 執行的sql語句n;]END IF;需求–定義一個int變量,用于存儲班級總成績
定義一個varchar變量,用于存儲分數描述
根據總成績判斷:
380分及以上 學習優秀
320 ~ 380 學習不錯
320以下 學習一般
調用CALL pro_test4();存儲過程結果:
3.int、out類型參數傳遞
參數傳遞CREATE PROCEDURE 存儲過程名稱([IN|OUT|INOUT] 參數名 數據類型)BEGINSQL 語句列表;END$輸入總成績變量,代表學生總成績
輸出分數描述變量,代表學生總成績的描述信息
根據總成績判斷:
380分及以上 學習優秀
320 ~ 380 學習不錯
320以下 學習一般
調用pro_test5存儲過程:
CALL pro_test5(350,@info); -- in可以為常量,out必須是變量CALL pro_test5((SELECT SUM(score) FROM student),@info); SELECT @info;結果:
【注:輸入值使用in參數。返回值使用out參數。inout參數就盡量的少用。】
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 邓超电脑壁纸(邓超图片最帅图片壁纸)
- 下一篇: 回收站等系统自带图标取消显示的方法怎么取