MySQL 创建函数(Function)

本文介绍如何使用MySQL创建数据库函数,并通过实例演示了如何定义一个获取员工姓名与工资的函数。

目标

怎么样MySQL创建数据库功能(Function)


语法

CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,參数是可选的
RETURNS type
[ characteristic ...] routine_body
  • CREATE FUNCTION 用来创建函数的keyword;
  • func_name 表示函数的名称;
  • func_parameters为函数的參数列表,參数列表的形式为:[IN|OUT|INOUT] param_name type
  1. IN:表示输入參数。
  2. OUT:表示输出參数;
  3. INOUT:表示既能够输入也能够输出;
  4. param_name:表示參数的名称;
  5. type:表示參数的类型,该类型能够是MySQL数据库中的随意类型;


演示样例

创建演示样例数据库、演示样例表与插入样例数据脚本:

create database hr;
use hr;

create table employees
(
	employee_id int(11) primary key not null auto_increment,
	employee_name varchar(50) not null,
	employee_sex varchar(10) default '男',
	hire_date datetime not null default current_timestamp,
	employee_mgr int(11),
	employee_salary float default 3000,
	department_id int(11)
);


insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('David Tian','男',10,7500,1);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Black Xie','男',10,6600,1);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Moses Wang','男',10,4300,1);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Rena Ruan','女',10,5300,1);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Sunshine Ma','女',10,6500,2);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Scott Gao','男',10,9500,2);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Warren Si','男',10,7800,2);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Kaishen Yang','男',10,9500,3);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Simon Song','男',10,5500,3);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Brown Guan','男',10,5000,3);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Eleven Chen','女',10,3500,2);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Cherry Zhou','女',10,5500,4);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Klause He','男',10,4500,5);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Maven Ma','男',10,4500,6);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Stephani Wang','女',10,5500,7);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Jerry Guo','男',10,8500,1);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Gerardo Garza','男',10,25000,8);
insert into employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) values ('Derek Wu','男',10,5500,5);


select * from employees;


创建函数-依据ID获取员工姓名与员工工资

DELIMITER //
CREATE FUNCTION GetEmployeeInformationByID(id INT)
RETURNS VARCHAR(300)
BEGIN
	RETURN(SELECT CONCAT('employee name:',employee_name,'---','salary: ',employee_salary) FROM employees WHERE employee_id=id);
END//
DELIMITER ;

调用函数

在MySQL——函数的用法与MySQL内部函数的用法一样。


<很多其它精彩内容。见后面更新...>

假设您们在尝试的过程中遇到什么问题或者我的代码有错误的地方,请给予指正,很感谢!

联系方式:david.louis.tian@outlook.com

版权@:转载请注明出处。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

### 如何在 MySQL创建存储函数 #### 创建存储函数的语法 要在 MySQL 数据库创建存储函数,需使用 `CREATE FUNCTION` 语句。此语句允许定义返回单个值的自定义逻辑。基本语法如下: ```sql DELIMITER $$ CREATE FUNCTION function_name (parameter_list) RETURNS datatype DETERMINISTIC | NONDETERMINISTIC LANGUAGE SQL NOT CONTAINS SQL | READS SQL DATA | MODIFIES SQL DATA BEGIN -- 函数体 END$$ DELIMITER ; ``` - `function_name`: 定义要创建函数名称。 - `parameter_list`: 参数列表及其数据类型。 - `RETURNS datatype`: 指定该函数将返回的数据类型的声明。 为了更好地理解上述概念,下面提供了一个具体的例子[^1]。 #### 示例:创建并调用 Square 函数 假设希望构建一个名为 `Square` 的简单函数用于计算给定数值的平方,则可以按照以下方式编写代码: ```sql DELIMITER $$ CREATE FUNCTION Square(n INT) RETURNS INT DETERMINISTIC BEGIN RETURN n * n; END$$ DELIMITER ; ``` 这段脚本完成了几个重要操作: - 更改默认分隔符为双美元符号(`$$`)以便处理多行输入; - 使用 `CREATE FUNCTION` 声明新函数; - 设置参数 `n` 类型为整数 (`INT`); - 明确指出这个函数会返回一个整数值; - 关键字 `DETERMINISTIC` 表示相同的输入总是会产生相同的结果; - 在 `BEGIN...END` 结构内实现具体业务逻辑——这里是简单的乘法运算; - 最终恢复标准分号作为命令终止标志。 一旦成功执行以上指令集,在后续查询里就可以像这样轻松地利用刚刚建立起来的新功能了: ```sql SELECT Square(5); -- 输出结果应为25 ``` 通过这种方式,不仅可以简化复杂表达式的书写过程,而且有助于提高程序可读性和维护效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值