共計 2053 個字符,預計需要花費 6 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
mysql 存儲過程有哪些使用技巧?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是丸趣 TV 小編給大家帶來的參考內容,讓我們一起來看看吧!
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 存儲過程有哪些使用技巧大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注丸趣 TV 行業資訊頻道。
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!