日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库入门教程(13):存储过程

發(fā)布時間:2024/9/30 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库入门教程(13):存储过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

存儲過程

過程塊sql主要有兩種類型,幾命名塊和匿名塊。匿名塊每次執(zhí)行時都要編譯,而且不能存儲到存儲過程中,也不能在其他過程化sql塊中調(diào)用,過程和函數(shù)時命名塊,他們在編譯時保存在數(shù)據(jù)庫中,成為持久型存儲模塊(Persistent Stored Module,PSM),可以被反復調(diào)用,運行速度較快。

存儲過程:簡單來說就是把一些函數(shù)封裝為中間文件,以后可以直接用,不用再編譯。必須在cmd中寫存儲過程函數(shù)。
得到的文件位置如下

#存儲過程和函數(shù)
/*
存儲過程和函數(shù):類似于java中的方法
好處:
1、提高代碼的重用性
2、簡化操作

/
#存儲過程
/
含義:一組預先編譯好的SQL語句的集合,理解成批處理語句
1、提高代碼的重用性
2、簡化操作
3、減少了編譯次數(shù)并且減少了和數(shù)據(jù)庫服務器的連接次數(shù),提高了效率
*/

一.創(chuàng)建語法

#語法:

delimiter 結(jié)束標記
CREATE PROCEDURE 存儲過程名(參數(shù)列表)
BEGIN
存儲過程體(一組合法的SQL語句)
END

#注意:

/*
1、參數(shù)列表包含三部分
參數(shù)模式 參數(shù)名 參數(shù)類型
舉例:
in stuname varchar(20)

參數(shù)模式:
in:該參數(shù)可以作為輸入,也就是該參數(shù)需要調(diào)用方傳入值
out:該參數(shù)可以作為輸出,也就是該參數(shù)可以作為返回值
inout:該參數(shù)既可以作為輸入又可以作為輸出,也就是該參數(shù)既需要傳入值,又可以返回值

2、如果存儲過程體僅僅只有一句話,begin end可以省略
存儲過程體中的每條sql語句的結(jié)尾要求必須加分號。
存儲過程的結(jié)尾可以使用 delimiter 重新設置
語法:
delimiter 結(jié)束標記
案例:
delimiter $
*/

二.調(diào)用語法

CALL 存儲過程名(實參列表);

三.算例

#1.空參列表

#案例:插入到admin表中五條記錄
算例資源,里面有我們需要的數(shù)據(jù)庫
個人mysql文件資源.zip

當然以下所有內(nèi)容也可以在SQLyang中執(zhí)行,我們在cmd中演示

第一步:

USE girls; #案例:插入到admin表中五條記錄 #查看 SELECT * FROM admin; 第二步:cmd 中輸入:

DELIMITER $#必須有這一行

DELIMITER $ CREATE PROCEDURE myp1() BEGININSERT INTO admin(username,`password`) VALUES('john1','0000'),('lily','0000'),('rose','0000'),('jack','0000'),('tom','0000'); END $

第三步:cmd中輸入 調(diào)用語句

CALL myp1()$

第四步:查詢輸入的值,這部分可以cmd也可以sqlyang

SELECT * FROM admin;

2.創(chuàng)建帶in模式參數(shù)的存儲過程
#案例1:創(chuàng)建存儲過程實現(xiàn) 根據(jù)女神名,查詢對應的男神信息

cmd中輸入

USE girls; DELIMITER $ CREATE PROCEDURE myp2(IN beautyName VARCHAR(20)) BEGINSELECT bo.*FROM boys boRIGHT JOIN beauty b ON bo.id = b.boyfriend_idWHERE b.name=beautyName;END $CALL myp2('柳巖')$

其中的set names gbk$ 改變字符集

sqlyang中創(chuàng)建和調(diào)用查詢

#3.創(chuàng)建out 模式參數(shù)的存儲過程
#案例2:根據(jù)輸入的女神名,返回對應的男神名和魅力值

cmd 中輸入

DELIMITER $ CREATE PROCEDURE myp7(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20),OUT usercp INT) BEGINSELECT boys.boyname ,boys.usercp INTO boyname,usercpFROM boys RIGHT JOINbeauty b ON b.boyfriend_id = boys.idWHERE b.name=beautyName ;END $#調(diào)用 CALL myp7('小昭',@name,@cp)$ SELECT @name,@cp$

#4.創(chuàng)建帶inout模式參數(shù)的存儲過程
#案例1:傳入a和b兩個值,最終a和b都翻倍并返回

DELIMITER $ CREATE PROCEDURE myp8(INOUT a INT ,INOUT b INT) BEGINSET a=a*2;SET b=b*2; END $#調(diào)用 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;


電氣工程的計算機萌新,寫博文不容易,如果你覺得本文對你有用,請點個贊支持下,謝謝。

總結(jié)

以上是生活随笔為你收集整理的mysql数据库入门教程(13):存储过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。