1.自定义函数
1.1.概念:是用户对MySQL扩展的途径,用法和内置函数相同(函数可以返回任意类型的值,也可以接受这些类型的函数,MySQL对多1024个函数)
1.2.两个必备条件:
1)参数:不一定必须
2)返回值:一定有
1.3.创建函数
1.3.1.
CREATE FUNCTION function_name
RETURNS
{STRING|INTEGER|REAL|DECIMAL}
Routine_body
函数体可以包含:
1)函数体由合法的SQL语句构成
2)函数体可以是简单的SELECT和INSERT语句构成
3)函数体如果为复合结构则用BEGIN......END语句
4)复合结构可以包含声明、循环、控制结构
1.3.2.创建简单的函数实例
1)不带参数的函数(格式化日期)
CREATE FUNCTION f1()
RETURNS
VARCHAR(30)
RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日 %H点:%i分:%s秒:');
2)带有参数的函数(求两个数字的平均值)
CREATE FUNCTION f2(num1 SMALLINT UNSIGNED, um2 SMALLINT UNSIGNED)
RETURNS
FLOAT(10,2) UNSIGNED
RETURN (num1+num2)/2;
3)复合结构的函数(给表插入数据同时返回最后一条记录的ID)
CREATE FUNCTION f3(username VARCHAR(20))
RETURNS
INT UNSIGNED
BEGIN
INSERT INTO table_name(username) VALUE(username) ;
RETURN LAST_INSERT_ID();
END
//
分号认为SQL命令的结束,通过“DELIMITER自定义分割符号” 修改MySQL默认的分割符比如DELIMITER // 就将分割符‘;’改为‘//’。