您現(xiàn)在的位置是:首頁 >要聞 > 2024-02-10 10:37:36 來源:
sql存儲(chǔ)過程的作用(sql存儲(chǔ)過程)
大家好,我是小夏,我來為大家解答以上問題。sql存儲(chǔ)過程的作用,sql存儲(chǔ)過程很多人還不知道,現(xiàn)在讓我們一起來看看吧!
一、簡單的儲(chǔ)存過程:
1、創(chuàng)建一個(gè)存儲(chǔ)過程
create procedure GetUsers()
begin
select * from user;
end;12345
2、調(diào)用存儲(chǔ)過程
call GetUsers();12
3、刪除存儲(chǔ)過程
drop procedure if exists GetUsers;
二、帶參數(shù)的存儲(chǔ)過程
1、MySql 支持 IN (傳遞給存儲(chǔ)過程) , OUT (從存儲(chǔ)過程傳出) 和 INOUT (對(duì)存儲(chǔ)過程傳入和傳出) 類型的參數(shù) , 存儲(chǔ)過程的代碼位于 BEGIN 和 END 語句內(nèi) , 它們是一系列 SQL 語句 , 用來檢索值 , 然后保存到相應(yīng)的變量 (通過指定INTO關(guān)鍵字) ;
2、下面的存儲(chǔ)過程接受三個(gè)參數(shù) , 分別用于獲取用戶表的最小 , 平均 , 最大分?jǐn)?shù) , 每個(gè)參數(shù)必須具有指定的類型 , 這里使用十進(jìn)制值(decimal(8,2)) , 關(guān)鍵字 OUT 指出相應(yīng)的參數(shù)用來從存儲(chǔ)過程傳出
create procedure GetScores(
out minScore decimal(8,2),
out avgScore decimal(8,2),
out maxScore decimal(8,2)
)
begin
select min(score) into minScore from user;
select avg(score) into avgScore from user;
select max(score) into maxScore from user;
end;1234567891011
3、調(diào)用此存儲(chǔ)過程 , 必須指定3個(gè)變量名(所有 MySql 變量都必須以 @ 開始) , 如下所示 :
call GetScores(@minScore, @avgScore, @maxScore);12
4、該調(diào)用并沒有任何輸出 , 只是把調(diào)用的結(jié)果賦給了調(diào)用時(shí)傳入的變量 @minScore, @avgScore, @maxScore , 然后即可調(diào)用顯示該變量的值 :
select @minScore, @avgScore, @maxScore;
5、使用 IN 參數(shù) , 輸入一個(gè)用戶 id , 返回該用戶的名字 :
create procedure GetNameByID(
in userID int,
out userName varchar(200)
)
begin
select name from user
where id = userID
into userName;
end;12345678910
6、調(diào)用存儲(chǔ)過程 :
call GetNameByID(1, @userName);
select @userName;123
參考資料
SQL存儲(chǔ)過程使用介紹.csdn博客[引用時(shí)間2017-12-31]
本文到此講解完畢了,希望對(duì)大家有幫助。