在mysql中可以通过语法“create function func_name ( [func_parameter] )”来创建函数,其中“create function”是用来创建函数的关键字。
推荐:《mysql视频教程》
在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)beginreturn(select concat('employee name:',employee_name,'---','salary: ',employee_salary) from employees where employee_id=id);end//delimiter ;
调用函数
在mysql——函数的使用方法与mysql内部函数的使用方法一样。
以上就是怎样在mysql中创建函数的详细内容。
