>데이터 베이스 >MySQL 튜토리얼 >mysql 저장 프로시저 반환

mysql 저장 프로시저 반환

王林
王林원래의
2023-05-11 18:44:07893검색

MySQL 저장 프로시저 사용 및 반환 값

MySQL 저장 프로시저는 MySQL 데이터베이스에 작성된 함수와 유사한 구조로, 사용자가 복잡한 데이터 작업을 빠르고 효율적으로 구현하는 데 도움이 될 수 있습니다. 다른 프로그래밍 언어의 함수나 프로시저와 유사하게 저장 프로시저를 사용하면 일반적으로 사용되는 일부 작업을 함께 캡슐화하여 프로그램을 더 쉽게 유지 관리하고 재사용할 수 있습니다. 그러나 다른 프로그래밍 언어와 달리 MySQL 저장 프로시저는 실행 시 데이터베이스의 데이터와 테이블을 직접 조작할 수 있습니다.

MySQL 저장 프로시저 사용

저장 프로시저를 사용하면 많은 이점이 있습니다. 한편으로는 저장 프로시저를 한 번만 컴파일하고 여러 번 호출할 수 있으므로 프로그램의 실행 효율성을 향상시킬 수 있습니다. 반면, 저장 프로시저를 데이터베이스 서버에서 직접 실행할 수 있기 때문에 네트워크 전송을 줄일 수 있습니다. 또한 저장 프로시저는 해당 프로시저를 실행하는 사용자를 인증하므로 데이터 보안을 향상시킬 수 있습니다.

MySQL 저장 프로시저를 생성하는 방법에는 명령줄(Command Line)과 데이터베이스 관리 도구(phpMyAdmin 또는 MySQL Workbench 등)의 두 가지가 있습니다. 다음은 명령줄을 사용하여 저장 프로시저를 생성하는 예입니다.

DELIMITER $$
CREATE PROCEDURE `getProduct`(IN `productId` INT, OUT `productName` VARCHAR(100), OUT `productDescription` TEXT)
BEGIN
SELECT `productName`, `productDescription` FROM `products` WHERE `productId` = `productId`;
END$$
DELIMITER ;

위 예의 DELIMITER 문은 MySQL 인터프리터에게 "$$" 문자열을 끝 기호로 처리하도록 지시하는 데 사용되는 특수 문입니다. 성명서. 이것의 목적은 구문 분석을 중지하고 저장 프로시저에서 정의를 실행할 시기를 MySQL 인터프리터에게 알려주는 것입니다.

프로세스를 생성할 때 매개변수의 유형과 이름을 전달해야 합니다. 위의 예에서 전달된 매개변수는 INT 유형의 productId이고, VARCHAR 유형의 productName과 TEXT 유형의 productDescription이 반환됩니다.

저장 프로시저에서는 다양한 MySQL 구문과 조건문을 사용할 수 있습니다. 위의 예에서 SELECT 문은 테이블에서 productId에 해당하는 productName 및 productDescription을 검색하는 데 사용됩니다.

MySQL 저장 프로시저의 반환 값

MySQL 저장 프로시저의 반환 값은 매우 유연할 수 있으며 반환 상태, 반환 결과 또는 반환 집합 등을 표시하는 데 사용할 수 있습니다. 일반적으로 사용되는 MySQL 저장 프로시저 반환 값은 다음과 같습니다.

  1. RETURN 문

RETURN 문은 단일 값을 반환하는 데 사용됩니다. RETURN 문에 도달하면 저장 프로시저가 실행을 중지하고 지정된 값을 반환합니다. 다음은 간단한 예입니다.

DELIMITER $$
CREATE PROCEDURE `helloWorld`(IN `name` VARCHAR(50))
BEGIN
SET @msg = CONCAT('Hello, ', name, '!') ;
RETURN @msg ;
END$$
DELIMITER ;

위의 예에서 저장 프로시저 helloWorld는 name 매개 변수를 받고 RETURN 문을 사용하여 문자열을 반환하는 저장 프로시저입니다.

  1. OUT 또는 INOUT 매개변수

OUT 또는 INOUT 매개변수는 여러 값을 반환하는 데 사용됩니다. 예를 들어 저장 프로시저가 여러 값을 반환해야 하는 경우 저장 프로시저에서 여러 OUT 또는 INOUT 매개 변수를 정의할 수 있습니다. 다음은 간단한 예입니다.

DELIMITER $$
CREATE PROCEDURE `orderSummary`(IN `orderId` INT, OUT `orderTotal` DECIMAL(15,2), OUT `orderSubtotal` DECIMAL(15,2), OUT `orderDiscount` DECIMAL(15,2))
BEGIN
SELECT `orderTotal`, `orderSubtotal`, `orderDiscount` FROM `orders` WHERE `orderID` = `orderId`;
END$$
DELIMITER ;

위 예에서 저장 프로시저 orderSummary는 INT 유형의 orderId를 수신하고 DECIMAL 유형의 세 가지 값인 orderTotal, orderSubtotal, orderDiscount를 반환합니다. 이 값은 저장 프로시저를 호출하는 프로그램에 저장됩니다.

MySQL 저장 프로시저에는 다양한 용도가 있습니다. 저장 프로시저에서 일괄 작업을 구현하고, 데이터베이스에 일관성 제약 조건을 추가하고, 여러 저장 프로시저 간에 코드와 데이터를 공유할 수 있습니다. 위의 예를 통해 MySQL 저장 프로시저의 기본 구문과 반환 값을 사용하는 방법을 배울 수 있습니다. 이 기사가 모든 사람에게 도움이 되기를 바랍니다.

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

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