久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql存儲過程有哪些使用技巧

164次閱讀
沒有評論

共計 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 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-18發表,共計2053字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 青冈县| 柏乡县| 麟游县| 徐闻县| 晋江市| 大悟县| 文登市| 霍林郭勒市| 台北县| 雷波县| 通化市| 门源| 新闻| 宁乡县| 车致| 穆棱市| 安龙县| 杭州市| 镇平县| 沙河市| 宁城县| 根河市| 龙井市| 綦江县| 凤庆县| 历史| 本溪| 汾西县| 互助| 唐海县| 吴桥县| 七台河市| 鄂托克旗| 永嘉县| 黑河市| 运城市| 洛浦县| 东兴市| 泗阳县| 昭通市| 南京市|