>  기사  >  데이터 베이스  >  mysql 저장 프로시저가 반환됨

mysql 저장 프로시저가 반환됨

王林
王林원래의
2023-05-11 17:25:371347검색

MySQL 저장 프로시저 반환

MySQL 저장 프로시저는 MySQL 데이터베이스에서 실행 가능한 프로그램으로, 입력 매개변수를 수신하고 일련의 작업을 수행하며 결과를 반환할 수 있습니다. SQL 문과 달리 저장 프로시저는 사전 컴파일되어 MySQL 데이터베이스에 저장될 수 있으므로 프로그램 실행 효율성이 향상됩니다.

저장 프로시저는 일반적으로 복잡한 비즈니스 로직 처리에 사용되므로 데이터 전송 및 처리 시간을 줄이고 실행 효율성을 향상시킬 수 있습니다. 또한 저장 프로시저는 애플리케이션 개발 시 더 나은 보안과 유지 관리성을 제공합니다.

MySQL 저장 프로시저는 간단한 정수, 문자열, 날짜 및 시간은 물론 복잡한 결과 집합을 포함한 다양한 유형의 결과를 반환할 수 있습니다. 이 문서에서는 MySQL 저장 프로시저를 만들고 결과를 반환하는 방법을 설명합니다.

MySQL 저장 프로시저 만들기

MySQL 저장 프로시저는 다음과 같은 방법으로 만들 수 있습니다.

CREATE PROCEDURE pro_name()
BEGIN    
    -- 存储过程的主体    
END;

여기서 pro_name은 저장 프로시저의 이름이고 BEGIN과 END 사이에는 저장 프로시저의 본문이 있습니다.

다음은 두 정수의 합을 반환하는 간단한 저장 프로시저의 예입니다.

CREATE PROCEDURE add_numbers(IN a INT, IN b INT, OUT sum INT)
BEGIN
    SET sum = a + b;
END;

이 저장 프로시저는 두 개의 정수 매개변수 a와 b를 받아 더한 후 sum 변수에 저장합니다. 저장 프로시저가 실행되면 합계 변수의 값이 반환됩니다.

MySQL 저장 프로시저 실행

MySQL 저장 프로시저는 다음과 같은 방법으로 실행할 수 있습니다.

CALL pro_name();

여기서 pro_name은 실행할 저장 프로시저의 이름입니다. 위 예의 저장 프로시저의 경우 다음과 같이 실행할 수 있습니다.

CALL add_numbers(1, 2, @sum);
SELECT @sum;

위 코드는 add_numbers 저장 프로시저를 호출하여 1과 2를 a와 b에 매개 변수로 전달하고 sum 변수를 출력 매개 변수로 전달합니다. . 다음으로 SELECT 문을 사용하여 합계 변수의 값을 가져올 수 있습니다.

MySQL 저장 프로시저는 결과 집합을 반환합니다.

간단한 데이터 유형을 반환하는 것 외에도 MySQL 저장 프로시저는 결과 집합을 반환할 수도 있습니다. 결과 집합은 여러 행과 열을 포함할 수 있는 데이터 모음입니다. MySQL 저장 프로시저는 다음과 같은 방법으로 결과 집합을 반환할 수 있습니다.

CREATE PROCEDURE pro_name()
BEGIN    
    SELECT columns FROM table WHERE condition;    
END;

여기서 columns는 반환할 열 이름이고, table은 쿼리할 테이블 이름이며, Condition은 검색할 조건입니다.

다음은 결과 집합을 반환하는 저장 프로시저의 예입니다.

CREATE PROCEDURE get_users()
BEGIN
    SELECT * FROM users;
END;

이 저장 프로시저는 사용자 테이블의 모든 행과 열을 반환합니다. 이 저장 프로시저는 다음을 사용하여 호출할 수 있습니다.

CALL get_users();

이렇게 하면 사용자 테이블의 모든 행과 열이 반환됩니다.

MySQL 저장 프로시저는 여러 결과 세트를 반환합니다.

MySQL 저장 프로시저는 여러 결과 세트를 반환할 수도 있습니다. 다중 결과 집합은 하나 이상의 SELECT 문에서 반환된 데이터 모음입니다.

MySQL 저장 프로시저는 다음 방법을 사용하여 여러 결과 집합을 반환할 수 있습니다.

CREATE PROCEDURE pro_name()
BEGIN    
    SELECT columns FROM table WHERE condition;    
    SELECT columns FROM table WHERE condition;    
END;

여기서 columns는 반환할 열 이름이고, table은 쿼리할 테이블 이름이며, Condition은 검색할 조건입니다.

다음은 여러 결과 집합을 반환하는 저장 프로시저의 예입니다.

CREATE PROCEDURE get_data()
BEGIN
    SELECT * FROM users;
    SELECT * FROM orders;
END;

이 저장 프로시저는 사용자 테이블과 주문 테이블의 모든 행과 열을 반환합니다. 이 저장 프로시저는 다음을 통해 호출할 수 있습니다.

CALL get_data();

이렇게 하면 두 개의 SELECT 문에서 반환된 두 개의 결과 집합이 반환됩니다.

MySQL 저장 프로시저는 조건문을 사용하여 결과를 반환합니다.

MySQL 저장 프로시저는 조건문을 사용하여 결과를 반환할 수 있습니다. 조건문에는 IF, CASE, LOOP 등의 문을 사용할 수 있습니다.

다음은 IF 문을 사용하여 결과를 반환하는 저장 프로시저의 예입니다.

CREATE PROCEDURE get_user_status(IN user_id INT, OUT status VARCHAR(255))
BEGIN
    DECLARE user_status INT;
    SELECT user_status INTO user_status FROM users WHERE id = user_id;
    
    IF user_status = 0 THEN
        SET status = 'Inactive';
    ELSEIF user_status = 1 THEN
        SET status = 'Active';
    ELSE
        SET status = 'Unknown';
    END IF;
END;

이 저장 프로시저는 정수 매개변수 user_id를 수신하고 사용자 상태에 따라 문자열을 반환합니다. 저장 프로시저는 먼저 사용자 테이블에서 user_id에 해당하는 사용자 상태를 검색하고 이를 user_status 변수에 저장합니다. 그런 다음 IF 문을 사용하여 사용자 상태를 확인하고 상태 변수의 값을 설정합니다. 마지막으로 저장 프로시저는 상태 변수를 출력 매개변수로 반환합니다.

위는 MySQL 저장 프로시저에서 반환된 결과의 몇 가지 예입니다. 저장 프로시저는 복잡한 비즈니스 로직을 처리하고 애플리케이션의 실행 효율성을 향상시킬 수 있는 MySQL 데이터베이스의 매우 강력하고 유용한 도구입니다. 특정 비즈니스 요구 사항에 따라 데이터를 처리하려면 적절한 저장 프로시저를 선택해야 합니다.

위 내용은 mysql 저장 프로시저가 반환됨의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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