mysql儲存過程學習筆記

2021-08-27 11:32:17 字數 2848 閱讀 7016

儲存過程理解

1.儲存過程:類似函式或者方法,是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數(如果該儲存過程帶有引數)來呼叫執行它。

2.mysql儲存過程的建立

mysql儲存過程建立的格式:create procedure 過程名 ([過程引數[,…]])

[特性 …] 過程體

過程引數:

in:輸入引數(定義了乙個引數,這個引數是必須在儲存過程是制定,在儲存過程中修該改引數的值不能被返回,為預設值)

例:使用in定義引數 set @age=1; 在儲存過程中改變引數值 前後查詢引數看引數值有沒有改變

定義儲存過程

mysql> delimiter *#8fbc8f size=4>//先改變分隔符號*

mysql> create

procedure

proctest

(in age int)

-> begin

-> select

age;*#8fbc8f size=4>//直接查詢age的值 不是查詢資料庫中的值*

-> set age=99;

-> select age;

-> end;

-> //

query ok, 0 rows affected (0.17 sec)

mysql> delimiter ;

mysql> set @age=1;*//設定輸入引數age的值*

mysql> call proctest(@age);//呼叫引數值

(當然也可以直接輸入引數,只是為了演示age的變化 )

mysql> call proctest(1);)*color=#8fbc8f

size=4>// 結果相同

結果 age最開始是10 過程的改變為99

+------+

| age |

+------+

| 10 |

+------+

1 row in set (0.08 sec)

//age最開始是10 過程中定義為99

+------+

| age |

+------+

| 99 |

+------+

1 row in set (0.09 sec)

query ok, 0 rows affected (0.10 sec)

最後查詢age的值仍為10

mysql> select @age;

+------+

| @age |

+------+

| 10 |

+------+

1 row in set (0.00 sec)

out:該值可在儲存過程內部被改變,並可返回

建立儲存過程

mysql > delimiter //

mysql > create

procedure

demo_out_parameter

(out p_out int)

-> begin

-> select

p_out;

-> set p_out=2;

-> select p_out;

-> end;

-> //

mysql > delimiter ;

執行結果:

mysql > set @p_out=1;

mysql > call sp_demo_out_parameter(@p_out);

+-------+

| p_out |

+-------+

| null |

+-------+

+-------+

| p_out |

+-------+

| 2 |

+-------+

mysql> select @p_out;

+-------+

| p_out |

+-------+

| 2 | //過程中改變的值被儲存了下來

+-------+

inout:呼叫時指定,並且可被改變和返回(in out的綜合)

mysql > set @p_inout=1;  

mysql > call demo_inout_parameter(@p_inout) ;

+---------+

| p_inout |

+---------+

| 1 |

+---------+

+---------+

| p_inout |

+---------+

| 2 |

+---------+

mysql > select @p_inout;

+----------+

| @p_inout |

+----------+

| 2 |

+----------+

重點:單詞拼寫為delimiter大寫delimiter

mysql學習筆記 儲存過程

sql view plain copy use test drop table if exists t8 create table t8 s1 int,primary key s1 drop procedure if exists handlerdemo delimiter create proce...

Mysql儲存過程學習筆記

在pl sql中,主要包括declare部分 宣告引數 begin.end部分和例外部分。mysql儲存過程建立的格式 create procedure過程名 過程引數 特性.過程體 選中 函式右鍵 新建建立 完成 輸入函式體 儲存名字 語法 create procedire 儲存過程命名 開始 函...

mysql儲存過程學習筆記

1.儲存過程簡介 我們常用的運算元據庫語言sql語句在執行的時候需要要先編譯,然後執行,而儲存過程 stored procedure 是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數 如果該儲存過程帶有引數 來呼叫執行它。乙個儲存過程是乙個可程式設...