MySQL 创建函数(Function)
目标
如何在MySQL数据库中创建函数(Function)
语法
CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,参数是可选的 RETURNS type [ characteristic ...] routine_body
- CREATE FUNCTION 用来创建函数的关键字;
- func_name 表示函数的名称;
- func_parameters为函数的参数列表,参数列表的形式为:[IN|OUT|INOUT] param_name type
- IN:表示输入参数;
- OUT:表示输出参数;
- INOUT:表示既可以输入也可以输出;
- param_name:表示参数的名称;
- type:表示参数的类型,该类型可以是MySQL数据库中的任意类型;
- RETURNS type:语句表示函数返回数据的类型;
- characteristic: 指定存储函数的特性,取值与存储过程时相同,详细请访问-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 FUNCTION
- 下一篇: MySQL创建Function时报错误码1418的解决方案