MySQL 函数
本文介绍如何在 MySQL 中使用和创建一个简单的函数。
MySQL 中的函数
是什么
在 MySQL 编程语言中,函数
是一组语句,它们执行一组行并返回一个值。
当功能块被外部调用时,这组代码执行业务逻辑,而转换恰好返回 void 或任何单独的值。
函数有助于在保存和检索数据之前处理数据。它有多种类型,如单值或多个参数函数。
我们可以从函数中获得的好处包括:
- 在不同的地方使用相同的功能进行一些操作。
- 一处改动,处处可见效果。
- 功能易于维护。
- 它允许代码共享和所有用途的一致性。
- 减少相同任务的返工和重复使用现有功能。
MySQL 中的函数原型或语法如下。
CREATEFUNCTIONfunction_name[(parameterdatatype[,parameterdatatype])RETURNSreturn_datatypeBEGINDeclaration_sectionExecutable_sectionEND;
让我们对上述语法有更多的见解和细节。
- 语法以
CREATE FUNCTION
语句开头;它在内部表示 MySQL,需要创建一个新方法。 - 在 function 关键字之后,
function_name
是特定名称,表示行块是所提供语句的别名。当给定函数名时,用户尝试执行给定的集合以执行所需的函数。 - 在函数名旁边,可以有
n
个参数作为参数传递给函数。参数列表由变量名和变量数据类型两部分组成。
3.1。变量名可用于函数操作逻辑。发生转换的语句集使用参数变量来处理接收到的数据。
3.2 变量名后的数据类型声明限制使用传递定义的参数。数据类型作为主要验证来验证传递的参数。 RETURNS
关键字指定下一个值是函数的单个返回值。Return_datatype
是函数返回值的数据类型。它还包括数据类型的大小,例如VARCHAR(20)
。BEGIN
关键字在内部指定关键字旁边的行是执行下一组行的起点。它表明这是功能块的开始。Declaration_section
是声明所有变量的功能块的位置或顶部。Executable_section
是实际代码行用于操作的块。这些行是执行业务转换逻辑的确切行。END;
是指定块结束的终端关键字。该关键字与BEGIN
语句结合使用。该语句说明了块的开始和结束。
在 MySQL 中使用 CREATE FUNCTION
创建函数
创建函数的先决条件是:
- 有一个正确的 MySQL 连接并保持服务器正常运行。
- 创建一个数据库并在需要创建函数的地方使用该数据库(例如:
myFirstDb
)。 - 预先创建一个可以调用函数的表(例如:
stu_name
)。 - 在函数起作用的表中输入一些条目并做出响应。
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。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。