当前位置:嗨网首页>书籍在线阅读

09-自定义函数的创建

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

9.4.1 自定义函数的创建

在MySQL中,创建自定义函数的语法如下。

CREATE FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic ...] routine_body

下面对创建存储自定义函数的各个部分语法进行详细说明。

⑴CREATE FUNCTION 创建自定义函数的关键字。

⑵sp_name参数是自定义函数的名称。

⑶func_parameter表示自定义函数的参数列表。func_parameter可以由多个参数组成,其中每个参数由参数名称和参数类型组成,其形式如下。

param_name typ

其中,param_name参数是自定义函数的参数名称;type参数指定自定义函数的参数类型,该类型可以是MySQL数据库的任意数据类型。

⑷RETURNS type指定返回值的类型。

⑸characteristic参数指定自定义函数的特性,该参数的取值与存储过程中的取值是一样的,请读者参照9.2节的内容。

⑹routine_body参数是SQL代码的内容,可以用BEGIN…END来标志SQL代码的开始和结束。

【范例9-10】

创建自定义函数,实现查询某雇员的姓名,代码如下。

mysql> create function name_emp(eno int) -> returns varchar(20) -> begin -> return(select empname -> from emp -> where empno=eno); -> end; Query OK, 0 rows affected (0.05 sec)

实现过程如下。

⑴创建了自定义函数名称为name_emp。

⑵该自定义函数有一个参数eno,该参数用来保存查询的某个雇员编号。

⑶returns varchar(20)定义该自定义函数的返回值为字符类型。

⑷在自定义函数体中使用select empname from emp where empno=eno查询语句查询编号,empname为给定参数eno的雇员姓名并将该姓名返回。

【范例9-11】

创建自定义函数,函数没有参数,代码如下。

mysql> create function age_emp() -> returns int -> begin -> return(select empage -> from emp -> where empno=1); -> end// Query OK, 0 rows affected (0.00 sec)

自定义函数没有参数也必须在函数名后面加上()。

提示 RETURNS语句只能对FUNCTION做指定,对函数而言这是强制的。它用来指定函数的返回类型,而且函数体必须包含一个RETURN value语句