MySQL儲存過程

2021-08-10 11:54:15 字數 2051 閱讀 5339

儲存過程是在大型資料庫系統中,一組為了完成特定功能的sql語句集,儲存在資料庫中。經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字和引數來執行它。

儲存過程只在創造時編譯,以後每次執行儲存過程都不需要再重新進行編譯,而一般的sql語句每執行一次就需要編譯一次,所有儲存過程可以提高資料庫的執行速度。

當對資料庫進行複雜操作時,可將此複雜操作用儲存過程進行封裝,與資料庫提供的事物處理結合一起使用。

儲存過程可以重複使用,減少開發人員的工作量。

安全性高,可指定特定使用者對指定的儲存過程的使用權。

基本語法:

create

procedure 儲存過程名(引數,引數....)

begin

// **

end$

儲存過程中的引數分為輸入引數(in),輸出引數(out)和輸入輸出引數(inout),預設是輸入引數。如果儲存過程中只有一條語句begin和end可以省略。

例1:查詢表中資料一條語句

create

procedure

p1()

begin

select * from

t_user;

end

呼叫儲存過程:

call p1();
例2:輸入乙個值如果大於等於22則查詢大於22歲的使用者,不然就查詢小於22歲的使用者

create

procedure

p2(age int(10))

begin

ifage >= 22 then

select * from

t_user

twhere

t.age >= 22;

else

select * from t_user t where t.age < 22;

endif;end

呼叫儲存過程:

call p2(10);
建立儲存過程:

create

procedure

p3(in n int , out res int)

begin

setres = n*n;

end

呼叫儲存過程:

set @res = 0;

call p3(10,@res);

select @res;

結果:

exists ]儲存過程名

1.新建一張bigdata表,裡面只有乙個number欄位

create

table bigdata(number

int);

2.建立乙個儲存過程向表中插資料

delimiter $$

create

procedure insert_bigdata (in startnum int, in num int)

begin

declare i int

default

0 ;set autocommit = 0 ;

repeat

set i = i + 1 ;

insert

into bigdata (number)values(startnum + i) ;

until i = num

end repeat ;

commit ;

end $$

3.呼叫儲存過程向表中插資料

call insert_bigdata(100,500000);

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