函数可以理解为一种特殊的子程序,函数可以有返回值,并且所有参数都是 IN 类型。
函数的结构
函数的结构如下,与存储过程相比,至少多一个或多个 RETURNS 子句:
CREATE
[DEFINER = user]
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic: {
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
}
routine_body:
Valid SQL routine statement
函数的优点
函数的优点与子程序基本相同,但是因为函数有返回值所以函数可以作为表达式使用。将功能定义为函数,并在表达式中使用,这种用法更灵活、更丰富、更符合编程习惯。
函数的创建
函数也要通过 CREATE 语句进行创建,并需满足如下条件:
函数需要考虑返回值的设置。
所有函数必须至少有一个
RETURNS语句。obclient> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50) DETERMINISTIC RETURN CONCAT('Hello, ',s,'!');/ Query OK, 0 rows affected obclient> SELECT hello('world');/ +----------------+ | hello('world') | +----------------+ | Hello, world! | +----------------+ 1 row in set函数要作为表达式被调用,需要与其他语句结合使用。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




