Mysql學習筆記(6)-存儲過程

目錄:
一.什么是存儲過程
二.六種存儲過程
  • 1.帶有輸入參數的存儲過程
  • 2.帶有輸出參數的存儲過程
  • 3.帶有輸入輸出參數的存儲過程
  • 4.帶有條件判斷的存儲過程
  • 5.帶有循環過程的存儲過程
  • 6.使用查詢的結果作為返回值

一.什么是存儲過程

存儲過程,帶有邏輯的sql語句。(有條件判斷,可以有循環控制語句(if while)

特點:

1.執行效率快-存儲過程是在數據庫服務器端執行。
2.移植性差-不同數據的存儲過程是不可以移植

語法:

delimiter $ --聲明存儲過程
create procedure 名稱 --存儲過程名稱(參數列表)
begin --開始
寫sql語句; -- 多個或一個sql語句
end $ --結束 結束符

執行存儲過程

call 名稱(); -- call 存儲過程名稱([參數])

參數:

in:表示輸入參數,可以攜帶數據帶存儲過程
out:表示輸出參數,可以從存儲過程中返回結果
inout:表示輸入輸出參數,既可以輸入功能,也可以輸出功能。

二.六種存儲過程

1.帶有輸入參數的存儲過程

--創建存儲過程
delimiter $ 
create procedure pro_findbyid(in eid int)
begin
    select * from employee where id = eid;
end $
--執行
call eurasia_echarts.pro_findbyid(1);

2.帶有輸出參數的存儲過程

如何接收返回參數的值
全局/內置變量:

mysql數據庫內置的變量,查看內置變量命令show variables
mysql服務器接受數據的編碼:character_set_client
mysql服務器輸出數據的編碼:character_set_results
查看某個局部變量:select @@變量名
修改某個全局變量:set 變量名=新值

會話變量:

只存在于當前客戶端與數據庫服務器端一次連接當中。如果連接斷開,那么會話變量全部丟失
定義會話:set @變量=值
查看會話:select @變量

局部變量

在存儲過程中使用的變量就叫局部變量。只要存儲過程執行完畢,局部變量就丟失。

--創建存儲過程
delimiter $ 
create procedure pro_out(out str varchar(20))
begin
    set str ='輸出我';
end $
--執行
set @str = '0';--(會話變量)
call eurasia_echarts.pro_out(@str);
select @str;

3.帶有輸入輸出參數的存儲過程

--創建存儲過程
delimiter $ 
create procedure pro_in_out(inout  m int)
begin
    select m;
    set m=500;
end $
--給m賦值為10
set @m=10;


--執行語句:結果為10
call eurasia_echarts.pro_in_out(@m);
--執行完語句m 的值為500
select @m;
image.png

4.帶有條件判斷的存儲過程

delimiter $ 
delimiter $ 
create procedure pro_testif(in  num int,out str varchar(20))
begin
    if num=1 then
            set str='星期一';
    elseif num=2 then
            set str='星期二';
     elseif num=3 then
            set str='星期三';   
     elseif num=4 then
            set str='星期四';
     else 
            set str='輸入錯誤';
     end if;
end $

call eurasia_echarts.pro_testif(2,@str);

select @str;

5.帶有循環過程的存儲過程

delimiter $ 
create procedure pro_testwhile(in  num int,out sum int)
begin
    declare i int default 1;-- 定義變量
    declare vsum int default 0;
    while i<=num do
        set vsum = vsum+i;
        set i = i+1;
    end while;
    set sum = vsum;
end $

call eurasia_echarts.pro_testwhile(50,@sum);

select @sum;

6.使用查詢的結果作為返回值

select * from employee;
delimiter $ 
create procedure pro_findemployee(in  eid int,out vname varchar(20))
begin
    select employee.name into vname from employee where eid=id;
end $

call eurasia_echarts.pro_findemployee(1,@name);
select @name;

上接文章:Mysql學習筆記(5)-"數據庫設計" 和 "關聯查詢"

文章文集:JavaEE--學習筆記

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容