Maison >base de données >tutoriel mysql >comment créer une fonction dans MySQL

comment créer une fonction dans MySQL

藏色散人
藏色散人original
2020-10-08 17:30:556146parcourir

Dans mysql, vous pouvez créer une fonction via la syntaxe "CREATE FUNCTION func_name ([func_parameter])", où "CREATE FUNCTION" est le mot-clé utilisé pour créer une fonction.

comment créer une fonction dans MySQL

Recommandé : "Tutoriel vidéo mysql"

Création d'une fonction dans une base de données MySQL

Syntaxe

CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,参数是可选的
RETURNS type
[ characteristic ...] routine_body

CREATE FUNCTION est le mot-clé utilisé pour créer une fonction ;

func_name représente le nom de la fonction

func_parameters est la liste des paramètres ; de la fonction, la liste des paramètres est sous la forme : [IN|OUT|INOUT] param_name type

IN : indique les paramètres d'entrée

OUT : indique les paramètres de sortie ; >INOUT : indique les deux. Il peut s'agir d'une entrée ou d'une sortie ;

param_name : indique le nom du paramètre

type : indique le type du paramètre, qui peut être n'importe quel type dans MySQL ; base de données;

RETURNS type : L'instruction indique le type de données renvoyées par la fonction ;

caractéristique : spécifie les caractéristiques de la fonction stockée, la valeur est la même que celle de la procédure stockée. pour plus de détails, veuillez visiter - Utilisation de la procédure stockée MySQL ;

Exemple

Créer un exemple de base de données, un exemple de table et insérer un exemple de script de données :

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;

Créer une fonction - obtenir le nom et l'employé de l'employé. salaire basé sur l'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 ;

Fonction d'appel

Dans MySQL - les fonctions sont utilisées de la même manière que les fonctions internes de MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn