MySQL資料庫8(二十六)儲存過程

2022-08-31 13:30:11 字數 1749 閱讀 8729

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

儲存過程:簡稱過程

1、儲存過程和函式的目的都是為了可重複地執行運算元據庫的sql語句的集合(**復用)

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

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

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

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

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

基本語法:

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

beign

過程體end

結束符號

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

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

檢視過程和檢視函式完全一樣,除了關鍵字。

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

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

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

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

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

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

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

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

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

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

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

引數使用基本語法:

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

在執行之後,再次檢視會話變數。

MySQL資料庫8(二十六)儲存過程

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

MySQL資料庫8(二十二)變數

mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中有很多的屬性控制都是通過mysql中固有的變數來實現的。系統內部定義的變數,系統變數針對所有使用者 mysql客戶端 有效 mysql允許使用者使用select查詢變數的資料值 系統變數 基本語法 select 變數名 分為兩種修改方...

MySQL資料庫8(二十五)變數作用域

變數作用域 變數能夠使用的區域範圍 使用declare關鍵字宣告 在結構體內 函式 儲存過程 觸發器 而且只能在結構體內部使用。declare關鍵字宣告的變數沒有任何符號修飾,就是普通字串,如果在外部能夠訪問該變數,系統會自動認為是字段。使用者定義的 使用 符號定義的變數,使用set關鍵字。會話作用...