MySQL 函数

本文介绍如何在 MySQL 中使用和创建一个简单的函数。

MySQL 中的函数是什么

在 MySQL 编程语言中,函数是一组语句,它们执行一组行并返回一个值。

当功能块被外部调用时,这组代码执行业务逻辑,而转换恰好返回 void 或任何单独的值。

函数有助于在保存和检索数据之前处理数据。它有多种类型,如单值或多个参数函数。

我们可以从函数中获得的好处包括:

  1. 在不同的地方使用相同的功能进行一些操作。
  2. 一处改动,处处可见效果。
  3. 功能易于维护。
  4. 它允许代码共享和所有用途的一致性。
  5. 减少相同任务的返工和重复使用现有功能。

MySQL 中的函数原型或语法如下。

CREATEFUNCTIONfunction_name[(parameterdatatype[,parameterdatatype])RETURNSreturn_datatypeBEGINDeclaration_sectionExecutable_sectionEND;

让我们对上述语法有更多的见解和细节。

  1. 语法以 CREATE FUNCTION 语句开头;它在内部表示 MySQL,需要创建一个新方法。
  2. 在 function 关键字之后,function_name 是特定名称,表示行块是所提供语句的别名。当给定函数名时,用户尝试执行给定的集合以执行所需的函数。
  3. 在函数名旁边,可以有 n 个参数作为参数传递给函数。参数列表由变量名和变量数据类型两部分组成。
    3.1。变量名可用于函数操作逻辑。发生转换的语句集使用参数变量来处理接收到的数据。
    3.2 变量名后的数据类型声明限制使用传递定义的参数。数据类型作为主要验证来验证传递的参数。
  4. RETURNS 关键字指定下一个值是函数的单个返回值。
  5. Return_datatype 是函数返回值的数据类型。它还包括数据类型的大小,例如 VARCHAR(20)
  6. BEGIN 关键字在内部指定关键字旁边的行是执行下一组行的起点。它表明这是功能块的开始。
  7. Declaration_section 是声明所有变量的功能块的位置或顶部。
  8. Executable_section 是实际代码行用于操作的块。这些行是执行业务转换逻辑的确切行。
  9. END; 是指定块结束的终端关键字。该关键字与 BEGIN 语句结合使用。该语句说明了块的开始和结束。

在 MySQL 中使用 CREATE FUNCTION 创建函数

创建函数的先决条件是:

  1. 有一个正确的 MySQL 连接并保持服务器正常运行。
  2. 创建一个数据库并在需要创建函数的地方使用该数据库(例如:myFirstDb)。
  3. 预先创建一个可以调用函数的表(例如:stu_name)。
  4. 在函数起作用的表中输入一些条目并做出响应。
CREATETABLE`stu`(`id`varchar(255)DEFAULTNULL,`name`varchar(255)DEFAULTNULL,`dob`dateDEFAULTNULL);
INSERTINTO`myFirstDb`.`stu`(`id`,`name`,`dob`)VALUES('111','Test',DATE('1970-01-08'));
DELIMITER$$CREATEDEFINER=`root`@`localhost`FUNCTION`get_stu_name`(stu_idVARCHAR(50))RETURNSvarchar(50)CHARSETutf8mb4BEGINdeclarestu_namevarchar(50);selectnameintostu_namefrommyFirstDb.stuwhereid=stu_id;RETURNstu_name;END$$DELIMITER;

当我们使用带有 SELECT 关键字的函数名时,会发生以下函数调用。调用语句如下所示。

Selectget_stu_name('111');

调用语句将参数 1 作为学生 ID 传递并执行该函数。要成功运行函数名称,必须存在一个学生表,其中 id 作为属性之一。

当记录存在时,该函数将与学生 ID 对应的学生姓名返回为 1。