儲存過程 MySQL儲存過程的使用總結

2021-10-25 12:30:22 字數 3266 閱讀 1147

案例所涉及到的表如下:

create table `t_goods` (

`g_id` varchar(20) not null comment '商品編號',

`g_name` varchar(30) default null comment '商品名稱',

`g_price` float default null comment '商品**',

`g_discount` float default null comment '折扣**',

`g_star` int(11) default null comment '顧客評分(1:一星2:二星依次類推)',

`g_author` varchar(10) default null comment '作者',

`g_press` varchar(50) default null comment '出版社',

`g_publish_time` varchar(12) default null comment '出版時間(格式2019-12-12)',

`g_img_path` varchar(100) default null comment '商品所在路徑',

`g_desc` varchar(500) default null comment '內容概述',

`g_number` int(11) default null comment '商品的數量',

一、mysql儲存過程的建立

建立個儲存過程,將商品編號g_id=』 hadoop_001』這本書的**加10元,並顯示結果。實現過程如下:

delimiter//

create procedure add_price()

begin

update t_goods set g_price = g_price + 10 where g_id='hadoop_001' ;

select * from t_goods;

end;

call add_price()

二、mysql儲存過程的引數

分別建立個帶引數in、out、inout的儲存過程:

1、帶in的引數

delimiter//

create procedure demo_in(in p_in int)

begin

select p_in;

set p_in=2;

select p_in;

end;

set @p_in=1

call demo_in(@p_in)

call demo_in(100)

2、帶out引數

delimiter//

create procedure demo_out(out p_out int)

begin

select p_out;

set p_out=2;

select p_out;

end;

set @p_out=1

call demo_out(@p_out) /*未被定義,返回為null */

select @p_out; /*返回為2 */

3、帶inout

delimiter//

create procedure demo_inout(inout p_inout int)

begin

select p_inout;

set p_inout=2;

select p_inout;

end;

delimiter

set @p_inout=1

call demo_inout(@p_inout)

select @p_inout;

三、mysql儲存過程的選擇結構

delimiter//

create procedure goods_demo1()

begin

declare v1 varchar(20);

declare v2 varchar(20);

select g_id,g_name into v1,v2 from t_goods where g_id='hadoop_001';

if v1='hadoop_001' then

select v2;

end if;

end;

call goods_demo1()

四、mysql儲存過程的迴圈結構練習

使用迴圈結構實現1 + 2 + 3 … + 100 = ? ,實現過程如下:

delimiter //

create procedure while_demo()

begin

declare i int;

declare _sum int;

set i=0;

set _sum=0;

while i<=100 do

set _sum=_sum+i;

set i=i+1;

end while;

select _sum;

end ;

call while_demo()

結果為:

五、mysql儲存過程的case分支語句

建立個儲存過程,引數是訂單狀態pay_status ,其值為整數型別,使用case語句判斷 pay_status的值,然後輸出相應的結果。規則如下:

(2)pay_status = 1 ,則輸出「支付寶支付」

(3)pay_status = 0 ,則輸出「銀行卡支付」

delimiter //

create procedure case_demo (in pay_status int)

begin

declare i int;

set i=pay_status;

case i

when 0 then

when 1 then

select '支付寶支付';

else

select '銀行卡支付';

end case;

end ;

call case_demo(1)

mysql儲存過程 MySQL儲存過程

在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...

mysql 儲存過程 mysql 儲存過程

建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...

mysql 儲存過程 MySQL儲存過程

目錄 儲存過程 簡介是一組為了完成特定功能的sql語句集合 比傳統sql速度更快 執行效率更高 儲存過程的優點 執行一次後,會將生成的二進位制 駐留緩衝區,提高執行效率 sql語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...