函数:系统函数和自定义函数
系统函数:
https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html
自定义函数(user-defined function UDF)
-
保存在mysql.proc表中
-
创建UDF:
CREATE [AGGREGATE] FUNCTION function_name(parameter_name type,[parameter_name type,...]) RETURNS {STRING|INTEGER|REAL} runtime_body
-
说明:
参数可以有多个,也可以没有参数
必须有且只有一个返回值 -
查看函数列表:
SHOW FUNCTION STATUS;
-
查看函数定义:
SHOW CREATE FUNCTION function_name
-
删除UDF:
DROP FUNCTION function_name
-
调用自定义函数语法:
SELECT function_name(parameter_value,...)
-
示例:无参UDF
CREATE FUNCTION simpleFun() RETURNS VARCHAR(20) RETURN "Hello World!";
-
示例:有参数UDF
DELIMITER // CREATE FUNCTION deleteById(uid SMALLINT UNSIGNED) RETURNS VARCHAR(20) BEGIN DELETE FROM students WHERE stuid = uid; RETURN (SELECT COUNT(uid) FROM students); END// DELIMITER ;
自定义函数中定义局部变量的语法:
DECLARE 变量1[,变量2,...]变量类型 [DEFAULT 默认值]
- 说明:局部变量的作用范围是在BEGIN...END程序中,而且定义局部变量语句必须在BEGIN...END的第一行定义
- 示例:
DELIMITER // CREATE FUNCTION addTwoNumber(x SMALLINT UNSIGNED,Y SMALLINT UNSIGNED) RETURNS SMALLINT BEGIN DECLARE a,b SMALLINT UNSIGNED DEFAULT 10; SET a = x,b = y; RETURN a+b; END//
为变量赋值语法
SET parameter_name = value[,parameter_name = value...]
SELECT INTO parameter_name
- 示例:
... DECLARE x int; SELECT COUNT(id) FROM tdb_name INTO x; RETURN x; END//
网友评论