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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql out_mysql存储过程 in out inout

發布時間:2025/3/12 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql out_mysql存储过程 in out inout 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

存儲過程的好處

存儲過程是一組預編譯好的sql語句,用來執行某個特定的功能。這樣可以省去sql解析、編譯、優化的過程,提高了執行效率,同時,在調用的時候只傳一個存儲過程的名稱,而不用傳一大堆sql語句,減少了網絡傳輸。也間接提高了執行效率。

存儲過程與自定義函數的區別

存儲過程是一組sql語句,為了實現某個獨立的功能,一般獨立執行。而自定義函數更多的作為其它sql語句的組成部分出現。

自定義函數只能有一個返回值,而存儲過程可以有多個返回值。

存儲過程功能復雜,函數針對性更強

存儲過程定義

存儲過程是sql語句和控制語句的預編譯集合,以一個名稱存儲并作為一個單元處理。

創建語法

create

[definer = {user|current_user}]

procedure proc_name ([參數[,....]])

some body code....

參數:

[in | out | inout] 參數名 類型

in 傳入的參數

out 返回的參數

inout 傳入 改變 并且返回的參數

調用語法

call proc_name(參數);

如果沒有參數,括號可以省略;

示例

創建沒有參數的存儲過程

create procedure ver()

select version();

調用

call ver(); 或 call ver;

當然這里把一個函數放進一個存儲過程沒有什么意義。只是單純為了舉例。

創建一個in參數的存儲過程

我們經常查詢id為某值的用戶,所以我們把它寫成一個存儲過程。

delimiter //

create procedure findUserById(in userId int unsigned)

begin

select * from user where id = userId;

end //

delimiter ;

注意:參數名不要和數據表中的字段名相同,否則會出現意想不到的后果。

調用

call findUserById(1);

創建一個in 一個out參數的存儲過程

刪除一個用戶并且返回剩余用戶數量

delimiter //

create procedure delUserByIdAndReturnNums(in userId int unsigned,out nums int unsigned )

begin

delete from user where id=userId;

select count(id) from user into nums;

end //

delimiter ;

調用:

call delUserByIdAndReturnNums(1,@nums);br/>調用過后我們就可以查看@nums的值了。

select @nums;

創建一個in多個out參數的存儲過程

刪除一個用戶并返回剩余用戶總數 和 被刪除用戶的姓名

delimiter //

create procedure delUser(in userId int ,out nums int,out username varchar(20))

begin

select name from user where id = userId into username;

delete from user where id = userId;

select count(id) from user into nums;

end //

delimiter ;

調用

call delUser(3,@nums,@username);

調用過后可以查看兩個變量的值。

select @nums;

select @username;

創建帶有inout參數的存儲過程

定義一個存儲過程,傳入一個整數得到其平方值。

delimiter //

create procedure square(inout num int)

begin

set num=num*num;

end //

delimiter ;

調用:

由于其參數是inout類型,所以我們需要傳入一個賦值過的變量,以便在存儲過程內部對其修改后返回。

set @num=3;

call square(@num);

select @num;

其結果如下:

mysql> set @num=3;

Query OK, 0 rows affected (0.00 sec)

mysql> call square(@num);

Query OK, 0 rows affected (0.02 sec)

mysql> select @num;

+------+

| @num |

+------+

| 9 |

+------+

1 row in set (0.00 sec)

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql out_mysql存储过程 in out inout的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区三区视频免费 | 中文字幕一区二区三区乱码在线 | 欧美在线www| 国产一区二区三区自拍 | 国产swag在线观看 | 黄色在线观看av | 午夜刺激视频 | 人人爱人人插 | 一区二区日韩欧美 | www成人在线 | 91久久精品国产91久久性色tv | 可以免费看的黄色 | 黑人巨大国产9丨视频 | 欧美午夜精品一区二区三区电影 | 手机成人免费视频 | 91国产大片 | 人人亚洲 | www.97超碰| 96免费视频 | 成人自拍一区 | 麻豆精品在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 露胸app | 精品无码久久久久国产 | 成人综合激情 | 黑人玩弄人妻一区二区三区免费看 | 韩国av电影网站 | 亚洲伊人网站 | 农村妇女愉情三级 | 1769国产| 在线免费观看日韩视频 | 97色伦97色伦国产欧美空 | 操操干 | 国产精品黑丝 | 国产激情一区二区三区视频免樱桃 | 久久最新免费视频 | a免费在线观看 | 黄瓜视频91 | 无码精品人妻一二三区红粉影视 | 麻豆精品网站 | 自拍偷拍福利视频 | 亚洲AV成人无码一二三区在线 | 91中文国产 | 国产网站久久 | 污网站免费在线观看 | 伊人日韩 | 日韩精品无码一本二本三本色 | 色婷婷久久久亚洲一区二区三区 | 中国黄色1级片 | 精品国产免费视频 | 韩国毛片一区二区三区 | 美美女高清毛片视频免费观看 | 国产一级片免费播放 | 91影院在线免费观看 | 欧美激情视频二区 | 午夜小网站| 小俊大肉大捧一进一出好爽 | 91色精品 | xxxx国产片 | 欧美一级影院 | 色播视频在线播放 | 一级片欧美 | 国产精品91av | 在线观看免费人成视频 | 国产色网址 | 亚洲综合第一区 | 色综合啪啪 | 红桃视频在线播放 | 欧美com| 黄色小视屏 | 人人妻人人澡人人爽精品欧美一区 | 在线观看免费人成视频 | 善良的老师伦理bd中字 | 蜜臀国产AV天堂久久无码蜜臀 | 国产无遮挡免费 | 两个人做羞羞的视频 | 国产夜夜操 | 久久成人一区 | 精品人妻一区二区三区久久嗨 | 欧美三级网站在线观看 | 无码aⅴ精品一区二区三区 精品久久在线 | 国产97色在线 | 国产亚洲黄色片 | 欧美区在线 | 日韩国产一区二区 | 少妇厨房愉情理伦bd在线观看 | 激情图片在线观看 | 贝利弗山的秘密1985版免费观看 | 欧美交换| 91在线观看成人 | 精品少妇人妻av免费久久久 | 亚洲国产v | 国产精品久久福利 | 亚洲自拍偷拍视频 | 黄色片99| 九色视频网站 | av福利在线观看 | 91成人免费看片 | 亚洲欧美日韩国产综合 |