数据库教程-mariadb教程-MariaDB函数

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

MariaDB函数是一个存储的程序,用于将参数传递给它们并获取函数的返回值。

我们可以在MariaDB中创建和删除函数。

1. MariaDB创建函数

可以在MariaDB中创建自己的函数:

语法:

CREATE    [ DEFINER = { CURRENT_USER | user_name } ]    FUNCTION function_name [ (parameter datatype [, parameter datatype]) ]   RETURNS return_datatype [ LANGUAGE SQL   | DETERMINISTIC   | NOT DETERMINISTIC   | { CONTAINS SQL    | NO SQL   | READS SQL DATA   | MODIFIES SQL DATA }   | SQL SECURITY { DEFINER | INVOKER }   | COMMENT 'comment_value'   BEGIN      declaration_section      executable_section   END; 

1. 创建函数

在MariaDB数据库中创建一个函数CalcValue。参考下面代码 –

DELIMITER // CREATE FUNCTION CalcValue ( starting_value INT ) RETURNS INT DETERMINISTIC BEGIN    DECLARE total_value INT;    SET total_value = 0;    label1: WHILE total_value <= 3000 DO      SET total_value = total_value + starting_value;    END WHILE label1;    RETURN total_value; END; // DELIMITER ; 

参数说明

  • DEFINER子句:它是一个可选的子句。如果没有指定,定义者是创建函数的用户。 如果您希望指定不同的定义者,则必须包含DEFINER子句,其中user_name是该函数的定义者。
  • function_name:指定要在MariaDB中分配给此函数的名称。
  • return_datatype:它指定函数返回值的数据类型。
  • LANGUAGE SQL:语法为可移植语法,但不会影响函数。
  • DETERMINISTIC:表示该函数将总是返回给定一组输入参数的一个结果。
  • NOT DETERMINISTIC:表示给定一组输入参数,该函数可能会返回不同的结果。 结果可能受到表数据,随机数字或服务器变量的影响。
  • CONTAINS SQL:这是默认的。这是一个告知MariaDB该函数包含SQL的信息性子句,但数据库不验证为真。
  • NO SQL:没有使用的信息性子句将不会影响函数。
  • READS SQL DATA:一个告知MariaDB该函数将使用SELECT语句读取数据但不修改任何数据的信息性子句。
  • MODIFIES SQL DATA:一个告知MariaDB该函数将使用INSERTUPDATEDELETE或其他DDL语句修改SQL数据的信息性子句。
  • declaration_section:声明局部变量的函数的地方。
  • executable_section:在函数中输入函数代码的地方。

MariaDB函数

2. 调用函数

可以看到程序成功执行并创建了一个新的函数。现在可以调用这个新创建的函数了,如下所示:

MariaDB函数

3. 删除函数

要删除MariaDB数据库中的自定义函数很容易。比如要上我们上面创建的函数,请参考以下语法。

语法:

DROP FUNCTION [ IF EXISTS ] function_name; 

参数说明

  • function_name:它指定想要删除的函数的名字。

示例:

在上面,我们已经创建了一个名为“CalcValue”的函数。假设现在要删除这个函数,可通过以下语句 –

DROP FUNCTION CalcValue; 

现在,可以看到该函数已被删除,不再出现在左侧列表中。

MariaDB函数

或通过查询下面语句 –

MariaDB [testdb]> SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='testdb'; Empty set (0.01 sec) 

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 mariadb教程 只为你绽放。

本文固定链接: http://kua0.com/2019/01/31/数据库教程-mariadb教程-mariadb函数/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注