1. 程式人生 > 其它 >儲存過程和函式

儲存過程和函式

9.1 建立儲存過程和函式

9.1.1 建立儲存過程

建立儲存過程,需要使用CREATE PROCEDURE語句。
CREATE PROCEDURE
sp_name ( [proc_parameter] )[characteristics ...]
routine_body

9.1.2 建立儲存函式

建立儲存過程,需要使用CREATE FUNCTION語句。
CREATE FUNCTION
func_name ( [func_parameter] )
RETURNS type [characteristic ...]
routine_body

9.1.3 變數的使用

1.定義變數
DECLARE var_name[,varname]… date_type [DEFAULT value];
2.為變數賦值
SET var_name = expr [, var_name = expr] ...;

9.1.4 定義條件和處理程式

1.定義條件
2.定義處理程式

9.1.5 游標的使用

1.宣告游標
DECLARE關鍵字來宣告游標
DECLARE cursor_name CURSOR FOR select_statement
cursor_name宣告游標的名字
select_statement是SELECT語句的內容
2.開啟游標
OPEN cursor_name
3.使用游標
FETCH cursor_name INTO var_name[,var_name]...{引數名稱}
4.關閉游標
close cursor_name

9.1.6 流程控制的使用

1.IF語句
2.CASE語句
3.LOOP語句
4.LEAVE語句
5.ITERATE語句
6.REPEAT語句
7.WHILE語句

9.2 呼叫儲存過程和函式

9.2.1 呼叫儲存過程

儲存過程的呼叫是通過CALL語句進行呼叫的。
CALL sp_name([parameter[,...]])

9.2.2 呼叫儲存函式

儲存函式的使用方法與MySQL內部函式的使用方法是一樣的。

9.3 檢視儲存過程和函式

9.3.1 SHOW STATUS語句檢視儲存過程和函式的狀態

SHOW STATUS語句可以檢視儲存過程和函式的狀態。
SHOW {PROCEDURE | FUNCTION} STATUS
[LIKE 'pattern']

9.3.2 SHOW CREATE語句檢視儲存過程和函式的定義

SHOW CREATE語句檢視儲存過程和函式的狀態。
SHOW CREATE {PROCEDURE | FUNCTION} sp_name

9.3.3 從information_schema.Routines表中檢視儲存過程和函式的資訊

MySQL中儲存過程和函式的資訊儲存在information_schema資料庫下的Routines表中。可以通過查詢該表的記錄來查詢儲存過程和函式的資訊。
SELECT * FROM information_schema.Routines
WHERE ROUTINE_NAME=' sp_name ' ;

9.4 修改儲存過程和函式

使用ALTER語句可以修改儲存過程或函式的特性。
ALTER {PROCEDURE | FUNCTION} sp_name [characteristic ...]

9.5 刪除儲存過程和函式

刪除儲存過程和函式,可以使用DROP語句。
DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name

9.6 MySQL 8.0的新特性——全域性變數的持久化

在MySQL資料庫中,全域性變數可以通過SET GLOBAL語句來設定。例如設定伺服器語句超時的限制,可以通過設定系統變數max_execution_time來實現:
SET GLOBAL MAX_EXECUTION_TIME=2000;
使用SET GLOBAL語句設定的變數值只會臨時生效。資料庫重啟後,伺服器又會從MySQL配置檔案中讀取變數的預設值。
MySQL 8.0版本新增了SET PERSIST命令。例如設定伺服器的最大連線數為1000:
SET PERSIST max_connections = 1000;

9.7 綜合案例——建立儲存過程和函式

建立儲存過程和函式
通過這一章的學習,應該掌握瞭如何建立儲存過程和儲存函式,變數的定義、使用,游標的作用和用途,以及MySQL的控制語句。所有的儲存過程和儲存函式儲存在伺服器上,只要呼叫就可以在伺服器上執行。

努力拼搏吧,不要害怕,不要去規劃,不要迷茫。但你一定要在路上一直的走下去,儘管可能停滯不前,但也要走。