>데이터 베이스 >MySQL 튜토리얼 >mysql에서 함수를 만드는 방법

mysql에서 함수를 만드는 방법

藏色散人
藏色散人원래의
2020-10-08 17:30:556140검색

mysql에서는 "CREATE FUNCTION func_name ([func_parameter])" 구문을 통해 함수를 생성할 수 있습니다. 여기서 "CREATE FUNCTION"은 함수를 생성하는 데 사용되는 키워드입니다.

mysql에서 함수를 만드는 방법

권장: "mysql 비디오 튜토리얼"

MySQL 데이터베이스에서 함수 만들기

Syntax

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: 출력 매개변수를 나타냅니다. 입력 출력일 수도 있습니다.

param_name: 매개변수의 이름을 나타냅니다.

type: MySQL 데이터베이스의 모든 유형일 수 있는 매개변수의 유형을 나타냅니다.

RETURNS 유형: 명령문은 매개변수의 유형을 나타냅니다.

특성: 저장 함수의 특성을 지정하며 값은 저장 프로시저의 특성과 동일합니다. 자세한 내용은 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;

Create 함수 - 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 ;

Call 함수

MySQL에서 이 함수는 MySQL 내부 함수와 동일한 방식으로 사용됩니다.

위 내용은 mysql에서 함수를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.