MySQL 프로시저와 함수의 몇 가지 예에 대해 이야기해 보겠습니다.

PHPz
풀어 주다: 2023-04-20 10:32:12
원래의
614명이 탐색했습니다.

MySQL은 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. MySQL은 데이터를 저장하고 관리하는 데 사용할 수 있으며 다양한 프로그래밍 언어와 운영 체제를 지원하며 확장성이 뛰어납니다.

MySQL 프로시저와 함수는 개발자가 복잡한 SQL 쿼리를 구조화된 방식으로 작성하고 구성할 수 있는 유용한 도구입니다. MySQL 저장 프로시저는 일련의 SQL 문으로 구성된 코드 블록입니다. 함수도 코드 블록이지만 값만 반환합니다.

이 글에서는 MySQL에서 프로시저와 함수를 생성하고 호출하는 방법과 저장 프로시저와 함수를 작성하는 방법을 소개합니다. 또한 이 기사에서는 독자가 이러한 기능의 사용을 더 잘 이해할 수 있도록 MySQL 프로시저 및 기능의 몇 가지 예를 제공합니다.

MySQL 프로시저 및 함수 생성

MySQL은 저장 프로시저 및 함수 생성을 위해 CREATE PROCEDURE 및 CREATE FUNCTION이라는 두 가지 명령을 제공합니다. 이러한 명령을 사용하려면 프로시저나 함수의 이름과 매개변수, 그리고 프로시저나 함수에 포함될 수 있는 SQL문을 지정해야 합니다.

저장 프로시저를 생성하는 구문은 다음과 같습니다.

CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]])
BEGIN
    proc_body;
END;
로그인 후 복사

그 중 DEFINER 매개 변수는 프로세스의 소유권을 가진 사람을 지정하며 기본값은 현재 사용자입니다. PROCEDURE 키워드 뒤에는 프로시저 이름이 오고 프로시저의 매개변수는 괄호 안에 지정됩니다.

다음은 간단한 MySQL 저장 프로시저입니다.

CREATE PROCEDURE simple_sp (IN x INT, OUT y INT)
BEGIN
    SET y = x * x;
END;
로그인 후 복사

저장 프로시저의 이름은 simple_sp입니다. 이 프로시저는 입력 매개변수 x와 출력 매개변수 y를 사용하여 출력에 입력 매개변수 x를 할당합니다. 매개변수 y.

함수 생성 구문은 저장 프로시저 생성과 유사합니다. 다음은 간단한 MySQL 함수입니다.

CREATE FUNCTION simple_func (x INT) RETURNS INT
BEGIN
    RETURN x * x;
END;
로그인 후 복사

함수 이름은 simple_func이며, 입력 매개변수 x를 가져와 매개변수의 제곱을 반환합니다.

MySQL 프로시저 및 함수 호출

저장 프로시저 및 함수 호출 방법은 동일합니다. CALL문을 사용하고 프로시저나 함수의 매개변수를 명령문에 전달하십시오. 다음은 simple_sp 저장 프로시저를 호출하는 예입니다.

CALL simple_sp(3, @y);
SELECT @y;
로그인 후 복사

위 명령문은 x의 제곱을 계산하고 그 결과를 y 변수에 저장한 후 y 값을 화면에 출력합니다.

simple_func 함수를 호출하는 구문은 비슷합니다.

SELECT simple_func(3);
로그인 후 복사

이 문은 simple_func 함수를 호출하고 3의 제곱을 반환합니다.

MySQL 저장 프로시저 및 함수 작성

MySQL 프로시저 및 함수에는 IF 문, LOOP 문, WHILE 문 등을 비롯한 여러 SQL 문과 흐름 제어 문이 포함될 수 있습니다.

다음은 직원 테이블에서 가장 높은 급여를 받는 직원을 선택하는 MySQL 저장 프로시저의 예입니다.

CREATE PROCEDURE get_highest_salary ()
BEGIN
    DECLARE highest_salary DECIMAL(10,2);
    DECLARE emp_id INT;
    
    SELECT MAX(salary) INTO highest_salary FROM employees;
    SELECT id INTO emp_id FROM employees WHERE salary = highest_salary;
    
    SELECT * FROM employees WHERE id = emp_id;
END;
로그인 후 복사

저장 프로시저는 2개의 변수, maximum_salary 및 emp_id를 선언한 다음 직원 테이블에서 가장 높은 급여를 검색합니다. . SELECT 문을 통해 최고 급여를 변수에 저장하고, 또 다른 SELECT 문을 사용하여 급여가 가장 높은 직원의 ID를 emp_id 변수에 저장합니다. 마지막으로, 이 프로세스에서는 급여가 가장 높은 직원의 모든 세부 정보를 선택합니다.

다음은 주어진 age 매개변수를 기반으로 직원 테이블의 직원 수를 반환하는 MySQL 함수의 예입니다.

CREATE FUNCTION get_employee_count (age INT) RETURNS INT
BEGIN
    DECLARE employee_count INT;
    
    SELECT COUNT(*) INTO employee_count FROM employees WHERE age = age;
    
    RETURN employee_count;
END;
로그인 후 복사

이 함수는 직원 수 변수를 선언하고 SELECT 문을 사용하여 직원 수를 계산합니다. 주어진 age 를 입력하고 이 값을 반환합니다.

결론

MySQL 프로시저와 함수는 개발자가 복잡한 SQL 쿼리를 구조화된 방식으로 작성하고 구성할 수 있는 유용한 도구입니다. 저장 프로시저와 함수에는 여러 SQL 문과 흐름 제어 문이 포함될 수 있으므로 코드가 더욱 유연해지고 유지 관리가 쉬워집니다. 이 기사에서는 MySQL에서 저장 프로시저 및 함수를 생성, 호출 및 작성하는 기본 지식을 소개하고 독자가 이러한 함수의 사용을 더 잘 이해할 수 있도록 몇 가지 예를 제공합니다.

위 내용은 MySQL 프로시저와 함수의 몇 가지 예에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿