MySQL儲存過程

2021-06-07 13:25:10 字數 2125 閱讀 3611

在資料庫系統中為了保證資料的完整性和一致性,同時也為了提高其應用效能,大多數的資料庫常採用儲存過程和儲存函式技術(類似於c語言中的函式)。mysql5.0以後開始支援儲存過程和儲存函式。

1、建立儲存過程

create procedure sp_name([proc_parameter[,…]])

[characteristic…]routine_body

sp_name表示儲存過程的名稱

proc_parameter表示儲存過程的引數列表

characteristic表示儲存過程中的特性

routine_body表示引數的sql**內容

注:proc_parameter有三部分組成,分別是輸入輸出型別,引數名稱和引數型別。其形式為[in | out | inout] param_name type.

例如: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;

//

delimeter//    ---這裡定義//為結束標誌

(2)建立儲存函式

create function sp_name([func_parameter[,…]])

returns type

[characteristic…]routine_body

例如:delimiter//

create function getname(std_id int)      --定義儲存函式名稱為getname

returns varchar(50)                     --返回值型別為varchar

begin

return(selectname from tb_student where id = std_id);

end//

(3)定義變數

區域性變數:

區域性變數採用declare宣告,後面跟變數名和變數型別:declare num int;

也可以同時指定預設值 declare num int default 100;

例如:delimiter//

create procedure test1()

begin

declare x varchar(10) default 『chen』;

begin

declare x varchar(10) default 『qing』;

select x;                     ------這裡會輸出qing

end;

select x;                     ------這裡會輸出chen

end

呼叫上面的**:

全域性變數:

在mysql中全域性變數不需要宣告即可以使用,全域性變數在整個會話過程中都有效,全域性變數以『@』作為起始字元。例如:

delimiter//

create procedure test2()

begin

set @id=1;

begin

set @id=2;

select @id;     ----------輸出2

end;

select @id;            ----------輸出2

end;

//呼叫上面的**:

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