MySQL 儲存過程

2021-07-24 20:17:56 字數 2802 閱讀 5358

儲存過程是在資料庫中定義一些sql語句的集合,然後直接呼叫這些儲存過程和函式來執行已定義好的sql語句。

在mysql中,建立儲存過程的基本形式如下:

create procedure sp_name ([proc_parameter[,...]]) [charactersitic..] routine_body
sp_name表示儲存過程的名稱

proc_parameter表示儲存過程的引數列表,由三部分組成:

charactersitic指定儲存過程的特性

routine_body引數是sql**的內容,可以使用begin end來標識sql**的開始和結束。

例如:

delimiter //

create procedure proc_name (in parameter integer)

begin

declare variable varchar(20);

if parameter = 1 then

set variable = 'mysql';

else

set variable = 'php';

end if;

insert into tb(name) values(variable);

end//

mysql的儲存過程名稱不區分大小寫。優越儲存過程內部語句要以分號結束,所以在定義儲存過程前,應將語句結束標誌」;「更改為其他字元。

delimiter //
最後再將結束符恢復成分號delimiter ;

建立儲存函式與建立儲存過程大體相同,其基本形式如下:

create function func_name([func_parameter])

returns type

[characteristics...] routine_body

mysql儲存過程中的引數主要有區域性引數和會話引數兩種,這兩種引數又可以被稱為區域性變數和會話變數。區域性變數只在定義該區域性變數的begin...end範圍內有效,會話變數在整個儲存過程範圍內均有效。

區域性變數以關鍵字declare宣告,後跟變數名和變數型別,例如:

declare a int;
也可以指定預設值:

declare a int default 10
如下,分別在內層和外層begin...end塊中都定義同名的變數x,其呼叫儲存過程的結果為outer

delimiter //

create procedure p1()

begin

declare x char(10) default 'outer';

begin

declare x char(10) default 'inner';

select x;

end;

select x;

end;

//delimiter ;

call p1();

mysql中的會話變數不必宣告即可使用,會話變數在整個過程有效,會話變數名以字元」@「作為起始字元。

delimiter //

create procedure p2()

begin

set @t=1;

begin

set @t=2;

select @t;

end;

select @t;

end;

//delimiter ;

call p2();

呼叫儲存過程的結果為2

mysql中可以使用declare關鍵字來定義變數,定義變數的基本語法如下:

declare var_name[,varname]...date_type[default value];
例如:

declare myparam int default 100;
還可以使用set關鍵字為變數賦值

set var_name=expr[,var_name=expr]...
例如:

set mr_soft = 10;
另外mysql中還可以應用另一種方式為變數賦值,其語法結構為:

select col_name[,...] into var_name[,...] from table_name where condition
其中col_name引數標識查詢的欄位名稱;var_name引數是變數的名稱;table_name引數為指定資料表的名稱;condition引數為指定查詢條件。

例如:從studentinfo表中查詢name為」leonsk」的記錄。將記錄下的tel欄位內容賦值給變數customer_tel,其關鍵**如下:

select tel into customer_tel from student info where name='leonsk';

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語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...