MySQL CREATE FUNCTION语句的用法(附带实例)
MySQL 中创建存储函数,需要使用 CREATE FUNCTION 语句,基本语法格式如下:
【实例】创建存储函数,名称为 NameByZip,该函数返回 SELECT 语句的查询结果,数值类型为字符串型,SQL 语句如下:
指定参数为 IN、OUT 或 INOUT 只对 PROCEDURE 是合法的(FUNCTION 中总是默认为 IN 参数)。RETURNS 子句只能对 FUNCTION 进行指定,对函数而言这是强制的。它用来指定函数的返回类型,而且函数体必须包含一个 RETURN value 语句。
CREATE FUNCTION func_name ( [func_parameter] ) RETURNS type [characteristic ...] routine_body各参数解释如下:
- 1) CREATE FUNCTION 为用来创建存储函数的关键字。
- 2) func_name 表示存储函数的名称。
- 3) func_parameter 为存储函数的参数列表,参数列表形式如下:
- [ IN | OUT | INOUT ] param_name type
- 其中,IN 表示输入参数,OUT 表示输出参数,INOUT 表示既可以输入也可以输出;param_name 表示参数名称;type 表示参数的类型,该类型可以是 MySQL 数据库中的任意类型。
- 4) RETURNS type 语句表示函数返回数据的类型。
- 5) characteristic 指定存储函数的特性,取值与创建存储过程时的相同。
【实例】创建存储函数,名称为 NameByZip,该函数返回 SELECT 语句的查询结果,数值类型为字符串型,SQL 语句如下:
CREATE FUNCTION NameByZip () RETURNS CHAR(50) RETURN (SELECT s_name FROM suppliers WHERE s_call= '48075'); 上述语句创建了一个存储函数 NameByZip(),参数定义为空,返回一个 CHAR 类型的结果。代码的执行结果如下: mysql> set global log_bin_trust_function_creators=TRUE; mysql> DELIMITER // mysql> CREATE FUNCTION NameByZip() -> RETURNS CHAR(50) -> RETURN (SELECT s_name FROM suppliers WHERE s_call= '48075'); -> // mysql> DELIMITER ;如果存储函数中的 RETURN 语句返回一个类型不同于函数的 RETURNS 子句中的指定类型的值,则返回值将被强制为恰当的类型。例如,如果一个函数返回一个 ENUM 或 SET 值,但是 RETURN 语句返回一个整数,则对于 SET 成员集相应的ENUM成员,MySQL 会将从函数返回的整数值转换为字符串。
指定参数为 IN、OUT 或 INOUT 只对 PROCEDURE 是合法的(FUNCTION 中总是默认为 IN 参数)。RETURNS 子句只能对 FUNCTION 进行指定,对函数而言这是强制的。它用来指定函数的返回类型,而且函数体必须包含一个 RETURN value 语句。
相关文章
- MySQL CREATE FUNCTION创建存储函数的用法(附带实例)
- MySQL自定义函数(CREATE FUNCTION)
- MySQL CREATE INDEX语句创建索引(非常详细,附带实例)
- MySQL CREATE PROCEDURE创建存储过程的用法(非常详细)
- MySQL CREATE VIEW创建视图(附带实例)
- MySQL CREATE PROCEDURE语句的用法(附带实例)
- MySQL SHOW CREATE TABLE:查看表详细结构(附带实例)
- MySQL创建数据库(CREATE DATABASE语句)
- MySQL创建数据表(CREATE TABLE语句)
- MySQL创建视图(CREATE VIEW)