六 MySQL儲存過程

2021-08-27 01:29:22 字數 2000 閱讀 8642

在資料庫系統中為了保證資料的完整性和一致性,同時也為了提高其應用效能,大多數的資料庫常採用儲存過程和儲存函式技術(類似於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儲存過程

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

MYSQL儲存過程(六)

1 mysql執行流程,通過儲存過程,可以避免重複語法分和編譯,提高執行效率 2 儲存過程 1 是sql語句與控制語句的 預編譯集合 以 乙個名稱儲存 作為 乙個單元處理 2 優點 增強了語句的功能和靈活性 可以通過控制語句對流程進行控制和判斷 實現較快的執行速度,只在 第一次呼叫時進行語法分析和編...

mysql儲存過程 MySQL儲存過程

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