在資料庫系統中為了保證資料的完整性和一致性,同時也為了提高其應用效能,大多數的資料庫常採用儲存過程和儲存函式技術(類似於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,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...