>데이터 베이스 >MySQL 튜토리얼 >MySQL 저장 프로시저의 사용, 실행, 생성에 대한 튜토리얼

MySQL 저장 프로시저의 사용, 실행, 생성에 대한 튜토리얼

巴扎黑
巴扎黑원래의
2017-05-18 11:01:261754검색

저장 프로시저 사용

저장 프로시저를 사용하려면 실행(실행) 방법을 알아야 합니다. 저장 프로시저의 실행은 정의된 것보다 훨씬 더 자주 발생하므로 저장 프로시저 실행부터 시작하겠습니다. 그런 다음 에서는 저장 프로시저의 생성 및 사용 방법을 소개합니다.

저장 프로시저 실행

MySQL은 저장 프로시저의 실행을 호출이라고 부르므로 MySQL이 저장 프로시저를 실행하는 데 사용하는 명령문은 통화입니다. CALL은 저장 프로시저의 이름과 여기에 전달되어야 하는 매개변수를 허용합니다. 다음 예를 살펴보십시오.

입력:

call productpricing(@pricelow,@pricehigh,@priceaverage);

분석: 여기에서 productpricing이라는 저장 프로시저가 실행되어 해당 제품의 최소, 최대 및 평균 가격을 계산하고 반환합니다. 제품.

나중에 설명하는 것처럼 저장 프로시저는 결과를 표시할 수도 있고 표시하지 않을 수도 있습니다.


저장 프로시저 생성

설명했듯이 저장 프로시저 작성은 사소한 문제가 아닙니다. 이 프로세스에 대한 아이디어를 얻으려면 제품의 평균 가격을 반환하는 저장 프로시저의 예를 생각해 보세요. 해당 코드는 다음과 같습니다.

입력:

create procedure productpricing() begin select avg(prod_price) as priceaverage from products;end;

분석: 첫 번째 명령문과 마지막 명령문은 나중에 소개하겠습니다. 이 저장 프로시저의 이름은 productpricing이며 CREATE PROCEDURE productpricing() 문으로 정의됩니다. 저장 프로시저가 매개변수를 승인하는 경우 해당 매개변수는 ()에 열거됩니다. 이 저장 프로시저에는 매개변수가 없지만 다음 ()은 여전히 ​​필요합니다. BEGIN 및 END 문은 저장 프로시저 본문을 한정하는 데 사용되며, 그 자체는 단순한 SELECT 문(Avg() 함수 사용)입니다.

MySQL은 이 코드를 처리하면서 새로운 저장 프로시저 product-pricing을 생성합니다. 이 코드는 단순히 나중에 사용하기 위해 생성된 저장 프로시저를 호출하지 않으므로 데이터가 반환되지 않습니다.

mysql 명령줄 클라이언트용 구분 기호 mysql 명령줄 유틸리티를 사용하는 경우 이 설명을 주의 깊게 읽어야 합니다.

기본 MySQL 문 구분 기호는 ;입니다(지금까지 사용된 MySQL 문에서 이미 본 바와 같습니다). mysql 명령줄 유틸리티는 ;를 명령문 구분 기호로 사용합니다. 명령줄 유틸리티가 저장 프로시저 자체 내에서 ; 문자를 해석하는 경우 해당 문자는 저장 프로시저의 구성 요소가 되지 않으므로 저장 프로시저 내의 SQL에서 구문 오류가 발생합니다.

해결책은 명령줄 유틸리티의 명령문 구분 기호를 다음과 같이 일시적으로 변경하는 것입니다.

delimiter//
create procedure productpricing()
begin
select avg(prod_price) as priceaverage from products;
end  //
delimiter;

여기서 DELIMITER //는 명령줄 유틸리티에 // 새 명령문 끝 구분 기호로 사용하도록 지시합니다. 저장 프로시저의 끝을 표시하는 END가 END; 대신 END//로 정의되어 있음을 알 수 있습니다. 이렇게 하면 저장 프로시저 본문 내부의 ;가 그대로 유지되고 데이터베이스 엔진에 올바르게 전달됩니다. 마지막으로 원래 문 구분 기호로 되돌리려면 DELIMITER ;를 사용하세요. 기호를 제외한 모든 문자를 명령문 구분 기호로 사용할 수 있습니다.

mysql 명령줄 유틸리티를 사용하는 경우 이 장을 읽을 때 이 점을 염두에 두시기 바랍니다.

그럼 이 저장 프로시저는 어떻게 사용하나요? 아래와 같이:

입력:

call productpricing();

출력:

MySQL 저장 프로시저의 사용, 실행, 생성에 대한 튜토리얼

분석: CALL productpricing()을 실행하고 반환된 결과를 표시합니다. 저장 프로시저가 실제로 함수이기 때문에 저장 프로시저 이름 뒤에 () 기호가 필요합니다(매개변수가 전달되지 않은 경우에도 마찬가지입니다).

위 내용은 MySQL 저장 프로시저의 사용, 실행, 생성에 대한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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