mysql函数教程_MySQL⾃定义函数(CREATEFUNCTION)在使⽤
MySQL 的过程中,MySQL ⾃带的函数可能完成不了我们的业务需求,这时候就需要⾃定义函数。
⾃定义函数是⼀种与存储过程⼗分相似的过程式数据库对象。它与存储过程⼀样,都是由 SQL 语句和过程式语句组成的代码⽚段,并且可以被应⽤程序和其他 SQL 语句调⽤。
人体所需常量元素及作用⾃定义函数与存储过程之间存在⼏点区别:三菱编程软件下载
script文件夹⾃定义函数不能拥有输出参数,这是因为⾃定义函数⾃⾝就是输出参数;⽽存储过程可以拥有输出参数。
⾃定义函数中必须包含⼀条 RETURN 语句,⽽这条特殊的 SQL 语句不允许包含于存储过程中。
可以直接对⾃定义函数进⾏调⽤⽽不需要使⽤ CALL 语句,⽽对存储过程的调⽤需要使⽤ CALL 语句。
创建并使⽤⾃定义函数 可以使⽤ CREATE FUNCTION 语句创建⾃定义函数。
语法格式如下:
CREATE FUNCTION ( [ [ , ] ] … )
RETURNS
语法说明如下:
:指定⾃定义函数的名称。注意,⾃定义函数不能与存储过程具有相同的名称。
mysql查看所有存储过程:⽤于指定⾃定义函数的参数。这⾥的参数只有名称和类型,不能指定关键字 IN、OUT 和 INOUT。
RETURNS:⽤于声明⾃定义函数返回值的数据类型。其中,⽤于指定返回值的数据类型。
:⾃定义函数的主体部分,也称函数体。所有在存储过程中使⽤的 SQL 语句在⾃定义函数中同样适⽤,包括前⾯所介绍的局部变量、SET 语句、流程控制语句、游标等。除此之外,⾃定义函数体还必须包含⼀个 RETURN 语句,其中⽤于指定⾃定义函数的返回值。
在 RETURN VALUE 语句中包含 SELECT 语句时,SELECT 语句的返回结果只能是⼀⾏且只能有⼀列值。flexibility中文翻译
若要查看数据库中存在哪些⾃定义函数,可以使⽤ SHOW FUNCTION STATUS 语句;若要查看数据库中某个具体的⾃定义函数,可以使⽤ SHOW CREATE FUNCTION 语句,其中
⽤于指定该⾃定义函数的名称。
【实例 1】创建存储函数,名称为 StuNameById,该函数返回 SELECT 语句的查询结果,数值类型为字符串类型,输⼊的 SQL 语句和执⾏结果如下所⽰。
mysql> CREATE FUNCTION StuNameById()
-> RETURNS VARCHAR(45)
-> RETURN
-> (SELECT name FROM tb_students_info
-> WHERE id=1);
Query OK, 0 rows affected (0.09 sec)
注意:当使⽤ DELIMITER 命令时,应该避免使⽤反斜杠“\”字符,因为反斜杠是 MySQL 的转义字符。 成功创建⾃定义函数后,就可以如同调⽤系统内置函数⼀样,使⽤关键字 SELECT 调⽤⽤户⾃定义的函数,语法格式为:
SELECT ([ [,...]]) 【实例 2】调⽤⾃定义函数 StuNameById,查看函数的运⾏结果,如下所⽰。
mysql> SELECT StuNameById();
+---------------+
| StuNameById() |
+---------------+
| Dany |
+---------------+
1 row in set (0.24 sec)
修改⾃定义函数 可以使⽤ ALTER FUNCTION 语句来修改⾃定义函数的某些相关特征。若要修改⾃定义函数的内容,则需要先删除该⾃定义函数,然后重新创建。
复制svg什么意思删除⾃定义函数 ⾃定义函数被创建后,⼀直保存在数据库服务器上以供使⽤,直⾄被删除。删除⾃定义函数的⽅法与删除存储过程的⽅法基本⼀样,可以使⽤ DROP FUNCTION 语句来实现。
语法格式如下:
DROP FUNCTION [ IF EXISTS ] 语法说明如下。
:指定要删除的⾃定义函数的名称。
IF EXISTS:指定关键字,⽤于防⽌因误删除不存在的⾃定义函数⽽引发错误。
【实例 3】删除⾃定义函数 StuNameById,查看函数的运⾏结果,如下所⽰。
mysql> DROP FUNCTION StuNameById;
Query OK, 0 rows affected (0.09 sec)
mysql> SELECT StuNameById();
ERROR 1305 (42000): FUNCTION test_db.StuNameById does not exist
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论