程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql創建存儲過程和函數

mysql創建存儲過程和函數

編輯:MySQL綜合教程

mysql創建存儲過程和函數   一個存儲程序是可以被存儲在服務器中的一套SQL語句。可以通過客戶端用CREATE PROCEDURE和CREATE FUNCTION  創建一個存儲過程或函數。在客戶端通過CALL語句 調用所創建的存數過程或函數。   語法:   創建存儲子程序:   01 CREATE PROCEDURE sp_name ([proc_parameter[,...]]) 02     [characteristic ...] routine_body 03 CREATE FUNCTION sp_name ([func_parameter[,...]]) 04     RETURNS type 05     [characteristic ...] routine_body 06     proc_parameter: 07     [ IN | OUT | INOUT ] param_name type 08     func_parameter: 09     param_name type 10  www.2cto.com   type: 11     Any valid MySQL data type 12 characteristic: 13     LANGUAGE SQL 14   | [NOT] DETERMINISTIC 15   | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 16   | SQL SECURITY { DEFINER | INVOKER } 17   | COMMENT 'string' 18 routine_body: 19     Valid SQL procedure statement or statements
  默認地,子程序與當前數據庫關聯。要明確地把子程序與一個給定數據庫關聯起來,可以在創建子程序的時候指定其名字為db_name.sp_name。在 程序被定義的時候,用mysql客戶端delimiter命令來把語句定界符從 ;變為//。這就允許用在 程序體中的;定界符被傳遞到服務器而不是被mysql自己來解釋。例如:   01 mysql> delimiter // 02 mysql> CREATE PROCEDURE simpleproc (OUT param1 INT) 03     -> BEGIN 04     ->   SELECT COUNT(*) INTO param1 FROM t; 05     -> END  www.2cto.com   06     -> // 07 Query OK, 0 rows affected (0.00 sec) 08 mysql> delimiter ; 09 mysql> CALL simpleproc(@a); 10 Query OK, 0 rows affected (0.00 sec) 11 mysql> SELECT @a; 12 +------+ 13 | @a   | 14 +------+ 15 | 3    | 16 +------+ 17 1 row in set (0.00 sec) 01 mysql> delimiter // 02 mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50) 03     -> RETURN CONCAT('Hello, ',s,'!'); 04     -> // 05 Query OK, 0 rows affected (0.00 sec) 06 mysql> delimiter ; 07  www.2cto.com   mysql> SELECT hello('world'); 08 +----------------+ 09 | hello('world') | 10 +----------------+ 11 | Hello, world!  | 12 +----------------+ 13 1 row in set (0.00 sec)       作者 蜜蜜

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved