儲存過程和函式

2021-07-07 06:08:27 字數 1623 閱讀 1322

定義:在資料庫中定義一些sql語句的集合,然後直接呼叫這些儲存過程和函式來執行已經定義好的sql語句。

建立儲存過程:create procedure sp_name([proc_parameter[,…]])

[characteristic…] routine_body

其中,sp_name引數是儲存過程的名稱;proc_parameter表示儲存過程的引數列表;characteristic引數指定儲存過程的特性;routine_body引數是sql**的內容,可以用begin…end來標誌sql**的開始和結束。

proc_parameter中每個引數由3部分組成。分別是輸入輸出型別、引數名稱和引數型別。形式如下:

[in | out | inout]param_name type,其中in表示輸入引數;out表示輸出引數;inout表示既可以是輸入,也可以是輸出;param_name引數是儲存過程的名稱;type引數指定儲存過程的引數型別。

建立儲存函式:create function sp_name(func_parameter[,…])

returns type

[characteristic…] routine_body

其中,sp_name引數是儲存函式的名稱,func_parameter表示儲存函式的引數列表;returns type指定返回值的型別;characteristic引數指定儲存函式的特性,該引數的取值與儲存過程中的取值是一樣的;routine_body引數是sql**的內容,可以用begin…end來標誌sql**的開始和結束。

func_parameter可以由多個引數組成,每個引數由引數名稱和引數型別組成。

定義變數:declare var_name[,…] type [default value]

為變數賦值:set var_name=expr[,var_name=expr]…

使用select…into語句給變數賦值:select col_name[,…] into var_name[,…]

from table_name where condition

定義條件:declare condition_name condition for condition_value

condition_value;

sqlstate [value] sqlstate_value | mysql_error_code

定義處理程式:

declare handler_type handler for condition_value[,…] sp_statement

handler_type:

continue | exit | undo

condition_value:

sqlstate[value] sqlstate_value | condition_name | sqlwaring

| not found | sqlexception | mysql_error_code

宣告游標:declare cursor_name cursor for select_statement;

開啟游標:open cursor_name;

使用游標:fetch cur_name into var_name[,var_name,…];

關閉游標:close cursor_name;

儲存過程和儲存函式

1 mysql 在操作子程式時,由於需要使用分號 所以要使用delimiter先重新定義分界符為 以下 包含的內容表示注釋 delimiter 使用delimiter 把定界符由 設定為 注意 delimiter 和 之間的空格。1 建立子程式 儲存過程和儲存函式的統稱 create procedu...

儲存過程和儲存函式

儲存過程 stored procedure 是一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫。中使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它 優點 1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而 一般sql 語句每執行一次就編譯一次,...

儲存過程和函式

子程式 命名的pl sql塊 的各個部分 申明部分,可執行部分,異常部分 可選 子程式的分類 過程 執行某些操作 函式 執行操作並返回結果 過程引數的三種模式 in,out,in out 建立過程的語法 create or replace procedure param list is as beg...