自定義函數的兩個必要條件:
(1)參數
(2)返回值
創建自定義函數:
CREATE FUNCTION function_name
RETURNS
{STRING|INTEGER|REAL|DECIMAL}
routine_body
函數體:
(1)函數體由合法的SQL語句構成
(2)函數體可以是簡單的SELECT或INSERT語句
(3)函數體如果爲複合結構則使用BEGIN...END語句
(4)複合結構可以包含聲明,循環,控制結構
不帶參數的自定義函數
CREATE FUNCTION fun1() RETURNS VARCHAR(30)
-> RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日 %H:%i:%s');
mysql> SELECT fun1();
+-------------------------+
| fun1() |
+-------------------------+
| 2016年05月01日 14:42:32 |
+-------------------------+
參數的自定義函數
CREATE FUNCTION fun(num1 SMALLINT,num2 SMALLINT)
-> RETURNS FLOAT(10,2)
-> RETURN (num1+num2)/2;
複合結構函數體的自定義函數
CREATE FUNCTION adduser(username VARCHAR(20))
-> RETURNS INT UNSIGNED
-> BEGIN
-> INSERT test(username) VALUES(username);
-> RETURN LAST_INSERT_ID();
-> END