溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數(shù)據(jù)庫mysql存儲中的入?yún)⒊鰠⑹鞘裁?/h1>
發(fā)布時間:2020-12-07 10:03:07 來源:億速云 閱讀:1813 作者:小新 欄目:編程語言

這篇文章主要介紹數(shù)據(jù)庫mysql存儲中的入?yún)⒊鰠⑹鞘裁矗闹薪榻B的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

入?yún)⒊鰠?/span>

語法: in|out|inout 參數(shù)名 數(shù)據(jù)類型 , ...

in 定義出參; out 定義入?yún)ⅲ?inout 定義出參和入?yún)ⅰ?/span>

出參in

使用出參in時,就是需要我們傳入?yún)?shù),在這里可以對參入的參數(shù)加以改變。簡單來說in只負責傳入?yún)?shù)到存儲過程中,類似Java中的形參。

delimiter //
create procedure val_in(in val_name varchar(32))
begin
    # 使用用戶變量出參(為用戶變量賦參數(shù)值)
    set @val_name1 = val_name;
end //
 
# 調(diào)用函數(shù)
call val_in('DK') //
 
# 查詢該用戶變量
select @val_name1 //

入?yún)?/span>out

在使用out時,需要傳入一個參數(shù)。而這個參數(shù)相當于是返回值,可以通過調(diào)用、接收來獲取這個參數(shù)的內(nèi)容。簡單來說out只負責作返回值。

delimiter //
# 創(chuàng)建一個入?yún)⒑统鰠⒌拇鎯^程
create procedure val_out(in val_id int,out val_name varchar(32))
begin
   # 傳入?yún)?shù)val_id查詢員工返回name值(查詢出的name值用出參接收并返回)
    select name into val_name from employee where id = val_id;
end //
 
# 調(diào)用函數(shù)傳入?yún)?shù)并聲明傳入一個用戶變量
call val_out(1, @n) //
 
# 查詢用戶變量
select @n //

入?yún)⒊鰠nout

inout關鍵字,就是把in和out合并成了一個關鍵字使用。被關鍵字修飾的參數(shù)既可以出參也可以入?yún)ⅰ?/span>

delimiter //
create procedure val_inout(in val_name varchar(32), inout val_age int)
begin
    # 聲明一個a變量
    declare a int;
    # 將傳入的參數(shù)賦值給a變量
    set a = val_age;
    # 通過name查詢age并返回val_age
    select age into val_age from employee where name = val_name;
    # 將傳入的a與-和查詢age結果字符串做拼接并查詢出來(concat——拼接字符串)
    select concat(a, '-', val_age);
end //
 
# 聲明一個用戶變量并賦予參數(shù)為40
set @ages = '40' //
# 調(diào)用函數(shù)并傳入?yún)?shù)值
call val_inout('Ziph', @ages) //
# 執(zhí)行結果
# 40-18

以上是“數(shù)據(jù)庫mysql存儲中的入?yún)⒊鰠⑹鞘裁础边@篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)
AI