-
存儲過程實現的功能要復雜一些;而函數的針對性更強
存儲過程可以返回多個值;函數只能有一個返回值
存儲過程一般獨立的來執行;而函數可以作為其他 SQL 語句的組成部分來出現。
查看全部 -
刪除存儲過程
DROP?PROCEDURE?[IF?EXISTS]?sp_name
查看全部 -
修改存儲過程
ALTER?PROCEDURE?sp_name?[characteristic?...] COMMENT?'string' |?{?CONTAINS?SQL?|?NO?SQL?|?READS?SQL?DATA?|?MODIFIES?SQL?DATA?} |?SQL?SECURITY?{DEFINER??|?INVOKER?}
查看全部 -
調用存儲過程
CALL?sp_name([parameter[,...]])
CALL?sp_name[()]
查看全部 -
過程體
過程體由合法的 SQL 語句構成;
過程體可以是“任意”SQL 語句;
過程體如果為復合結構則使用 BEGIN ... END 語句;
復合結構可以包含聲明、循環、控制結構;
查看全部 -
特性
COMMENT?'string' |?{?CONTAINS?SQL?|?NO?SQL?|?READS?SQL?DATA?|?MODIFIES?SQL?DATA?} |?SQL?SECURITY?{?DEFINER?|?INVOKER?}
COMMENT:注釋
CONTAINS SQL:包含 SQL 語句,但不包含讀或寫數據的語句
NO SQL:不包含 SQL 語句
READS SQL DATA:包含讀數據的語句
MODIFIES SQL DATA:包含寫數據的語句
SQL SECURITY { DEFINER | INVOKER }:指明誰有權限來執行
查看全部 -
參數
IN,表示該參數的值必須在調用存儲過程時指定
OUT,表示該參數的值可以被儲過程改變,并且可以返回
INOUT,表示該參數的調用時指定,并且可以被改變和返回
查看全部 -
創建存儲過程
CREATE [DEFINER?=?{?user?|?CURRENT_USER?}] PROCEDURE?sp_name?([proc_parameter[,...]]) [characteristic?...]?routine_body
proc_parameter: [?IN?|?OUT?|?INOUT?]?param_name?type
查看全部 -
存儲過程的優點
查看全部 -
存儲過程是 SQL 語句和控制語句的預編譯集合,以一個名稱存儲并作為一個單元處理
查看全部 -
MySQL 命令的執行流程
查看全部 -
自定義函數:簡稱 UDF;是對 MySQL 擴展的一種途徑
創建自定義函數:CREATE FUNCTION ......
自定義函數兩個必要條件:
參數:可以有零個或多個
返回值:只能有一個返回值
具有復合結構的函數體需要使用 BEGIN .... END 來包含
查看全部 -
刪除函數
DROP。。。
查看全部 -
關于函數體
函數體由合法的 SQL 語句構成;
函數體可以是簡單的 SELECT 或 INSERT 語句;
函數體如果為復合結構則使用 BEGIN ... END 語句;
復合結構可以包含聲明,循環,控制結構;
查看全部 -
創建自定義函數
CREATE?FUNCTION?function_name?RETURNS {STRING|INTEGER|REAL|DECIMAL} routine_body
查看全部
舉報