MySQL 儲存過程

2021-09-11 07:08:07 字數 2064 閱讀 4549

儲存過程(stored procedure)是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯(效率比較高),使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件(針對sql程式設計而言)。

與函式的區別

相同點1、 儲存過程和函式目的都是為了可重複地執行運算元據庫的sql語句的集合。

2、 儲存過程函式都是一次編譯,後續執行

不同點1、識別符號不同。函式的識別符號為function,過程為:procedure。

2、函式中有返回值,且必須返回,而過程沒有返回值。

3、過程無返回值型別,不能將結果直接賦值給變數;函式有返回值型別,呼叫時,除在select中,必須將返回值賦給變數。

4、函式可以在select語句中直接使用,而過程不能:函式是使用select呼叫,過程不是。

建立過程

基本語法:

create procedure 過程名字([引數列表])

begin

過程體end結束符

--如果過程體中只有一條指令,那麼可以省略begin和end

過程基本上也可以完成函式對應的所有功能

檢視過程

檢視過程與檢視函式完全一樣:除了關鍵字

檢視全部儲存過程:show procedure status [like 'pattern'];

檢視過程建立語句:show create procedure 過程名字;

呼叫過程

過程:沒有返回值,select不可能呼叫

呼叫過程有專門的語法:call 過程名([實參列表]);

刪除過程

基本語法:drop procedure 過程名字;

儲存過程也允許提供引數(形參和實參):儲存的引數也和函式一樣,需要指定其型別。

但是儲存過程對引數還有額外的要求:自己的引數分類in

表示引數從外部傳入到裡面使用(過程內部使用):可以是直接資料也可以是儲存資料的變數

out

表示引數是從過程裡面把資料儲存到變數中,交給外部使用:傳入的必須是變數

如果說傳入的out變數本身在外部有資料,那麼在進入過程之後,第一件事就是被清空,設為null

inout

資料可以從外部傳入到過程內部使用,同時內部操作之後,又會將資料返還給外部。

引數使用級別語法(形參)

過程型別 變數名 資料型別; --in int_1 int

分析結果:out型別的資料會被清空,其他正常

在執行過程之後,再次檢視會話變數(外部)

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