mysql儲存過程使用技巧有:1、建立帶in模式引數的儲存過程;2、建立out模式引數的儲存過程;3、建立帶inout模式引數的儲存過程。
mysql儲存過程使用技巧有:
定義
一組預先編譯好的SQL語句的集合,理解成批次處理語句,類似於java中的方法
1、提高程式碼的重用性
2、簡化操作
3、減少了編譯次數並且減少了和資料庫伺服器的連線次數,提高了效率
建立語法
CREATE PROCEDURE 儲存過程名(參數列) BEGIN 儲存過程體(一組合法的SQL語句) END
參數列包含三部分
引數模式 引數名 引數型別
舉例:
in stuname varchar(20)
引數模式:
in:該引數可以作為輸入,也就是該引數需要呼叫方傳入值
out:該引數可以作為輸出,也就是該引數可以作為返回值
inout:該引數既可以作為輸入又可以作為輸出,也就是該引數既需要傳入值,又可以返回值
如果儲存過程體僅僅只有一句話,begin end可以省略
儲存過程體中的每條sql語句的結尾要求必須加分號。
儲存過程的結尾可以使用 delimiter 重新設定
語法:
delimiter 結束標記
案例:
delimiter $
呼叫語法
CALL 儲存過程名(實參列表);
空參列表
插入到admin表中五條記錄
SELECT * FROM admin; DELIMITER $ CREATE PROCEDURE myp1() BEGIN INSERT INTO admin(username,`password`) VALUES('john1','0000'),('lily','0000'),('rose','0000'),('jack','0000'),('tom','0000'); END $ #呼叫 CALL myp1()$
建立帶in模式引數的儲存過程
建立儲存過程實現 根據女神名,查詢對應的男神資訊 CREATE PROCEDURE myp2(IN beautyName VARCHAR(20)) BEGIN SELECT bo.* FROM boys bo RIGHT JOIN beauty b ON bo.id = b.boyfriend_id WHERE b.name=beautyName; END $ #呼叫 CALL myp2('柳巖')$
建立儲存過程實現,使用者是否登入成功
CREATE PROCEDURE myp4(IN username VARCHAR(20),IN PASSWORD VARCHAR(20)) BEGIN DECLARE result INT DEFAULT 0;#宣告並初始化 SELECT COUNT(*) INTO result#賦值 FROM admin WHERE admin.username = username AND admin.password = PASSWORD; SELECT IF(result>0,'成功','失敗');#使用 END $ #呼叫 CALL myp3('張飛','8888')$
建立out 模式引數的儲存過程
根據輸入的女神名,返回對應的男神名
CREATE PROCEDURE myp6(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20)) BEGIN SELECT bo.boyname INTO boyname FROM boys bo RIGHT JOIN beauty b ON b.boyfriend_id = bo.id WHERE b.name=beautyName ; END $
根據輸入的女神名,返回對應的男神名和魅力值
CREATE PROCEDURE myp7(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20),OUT usercp INT) BEGIN SELECT boys.boyname ,boys.usercp INTO boyname,usercp FROM boys RIGHT JOIN beauty b ON b.boyfriend_id = boys.id WHERE b.name=beautyName ; END $ #呼叫 CALL myp7('小昭',@name,@cp)$ SELECT @name,@cp$
建立帶inout模式引數的儲存過程
傳入a和b兩個值,最終a和b都翻倍並返回
CREATE PROCEDURE myp8(INOUT a INT ,INOUT b INT) BEGIN SET a=a*2; SET b=b*2; END $ #呼叫 SET @m=10$ SET @n=20$ CALL myp8(@m,@n)$ SELECT @m,@n$
刪除儲存過程
drop procedure 儲存過程名 DROP PROCEDURE p1; DROP PROCEDURE p2,p3;#×
檢視儲存過程的資訊
DESC myp2; SHOW CREATE PROCEDURE myp2;
以上就是mysql儲存過程使用技巧有哪些的詳細內容,更多請關注TW511.COM其它相關文章!