찾다
데이터 베이스MySQL 튜토리얼mysql 문자열 저장 프로시저란 무엇입니까?

1. 문자열 저장 프로시저 정의

MySQL에서는 DELIMITER 명령을 사용하여 저장 프로시저에서 여러 SQL 문을 사용할 수 있습니다. 예를 들어, 다음 예에서는 구분 기호 "//"를 사용하는 my_proc라는 저장 프로시저가 정의되어 있습니다.

DELIMITER //
CREATE PROCEDURE my_proc()
BEGIN
    -- 定义字符串变量
    DECLARE my_str VARCHAR(50) DEFAULT 'Hello, world!';

    -- 输出字符串变量
    SELECT my_str;

    -- 修改字符串变量的值
    SET my_str = CONCAT(my_str, ' MySQL!');

    -- 再次输出字符串变量
    SELECT my_str;
END //
DELIMITER ;

위 예에서는 먼저 DELIMITER 명령을 사용하여 구분 기호를 "//"로 설정한 다음 A my_str이라는 문자열 변수가 정의되어 있으며 초기 값은 "Hello, world!"입니다. 다음으로 저장 프로시저에서 my_str 변수의 값이 출력되고, 이후 SET 명령어를 이용하여 값이 수정되면 my_str 변수의 값이 출력되면 "Hello, world! MySQL"로 변경된 것을 알 수 있다. !".

2. 문자열 저장 프로시저에 매개변수 전달

일반적으로 실제 애플리케이션에서는 이러한 매개변수를 기반으로 다양한 작업을 수행하려면 매개변수를 저장 프로시저에 전달해야 합니다. 다음 예에서는 my_proc라는 저장 프로시저가 정의되어 있습니다. 이 프로시저는 두 매개변수(x 및 y)를 허용하고 해당 합계를 계산하여 결과를 반환합니다.

DELIMITER //
CREATE PROCEDURE my_proc(IN x INT, IN y INT, OUT result INT)
BEGIN
    SET result = x + y;
END //
DELIMITER ;

위 예에서는 IN 키워드를 사용하여 x와 y를 입력으로 정의합니다. 매개변수, OUT 키워드를 사용하여 결과를 출력 매개변수로 정의합니다. 즉, 저장 프로시저가 결과 값을 반환합니다. 저장 프로시저의 본문에는 단순히 x와 y의 값을 더하고 결과 변수에 결과를 저장하는 계산된 SQL 문이 포함되어 있습니다.

다음으로 CALL 명령을 사용하여 my_proc 저장 프로시저를 호출하고 두 개의 매개변수를 전달할 수 있습니다. 예:

SET @x = 10;
SET @y = 20;
CALL my_proc(@x, @y, @result);
SELECT @result;

위의 예에서 두 변수 @x 및 @y가 먼저 정의되고 값이 할당됩니다. ​10 및 20; 그런 다음 CALL 명령을 사용하여 my_proc 저장 프로시저가 호출되고 @x 및 @y가 입력 매개변수로 전달됩니다. 마지막으로 저장 프로시저의 출력 @result가 콘솔에 출력됩니다.

3. IF 문 및 루프 구조 사용

저장 프로시저에 IF 문 및 루프 구조를 적용하면 더 복잡한 논리를 구현할 수 있습니다. 예를 들어, 다음 예에서는 매개 변수 n을 받아들이고 피보나치 수열의 n번째 수를 계산하고 결과를 반환하는 my_proc라는 저장 프로시저를 정의합니다.

DELIMITER //
CREATE PROCEDURE my_proc(IN n INT, OUT result INT)
BEGIN
    DECLARE i INT DEFAULT 1;
    DECLARE a INT DEFAULT 1;
    DECLARE b INT DEFAULT 1;

    IF n <= 0 THEN
        SET result = 0;
    ELSEIF n = 1 OR n = 2 THEN
        SET result = 1;
    ELSE
        WHILE i < n DO
            SET result = a + b;
            SET a = b;
            SET b = result;
            SET i = i + 1;
        END WHILE;
    END IF;
END //
DELIMITER ;

위 예에서는 IF 문을 사용하여 판단합니다. n이 0보다 작거나 같으면 0을 직접 반환합니다. n이 1 또는 2이면 1을 반환합니다. 그렇지 않으면 WHILE 루프를 사용하여 피보나치 수열의 n번째 숫자를 계산합니다.

CALL 명령을 사용하여 my_proc 저장 프로시저를 호출하고 매개변수를 전달할 수 있습니다. 예:

SET @n = 10;
CALL my_proc(@n, @result);
SELECT @result;

위 예에서 매개변수 @n을 10에 할당하고 my_proc 저장 프로시저를 호출한 후 해당 출력 @result를 출력합니다. 무대 위 컨트롤로. 피보나치 수열의 10번째 숫자는 55이므로 최종 출력은 55가 되어야 합니다.

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

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
MySQL에서 기존보기를 삭제하거나 수정하려면 어떻게해야합니까?MySQL에서 기존보기를 삭제하거나 수정하려면 어떻게해야합니까?May 16, 2025 am 12:11 AM

todropaViewInmysql, "dropviewifexistsview_name;"및 TomodifyAview를 사용하고 "createOrreplaceViewView_NameAsselect ...". "

MySQL보기 : 어떤 디자인 패턴을 사용할 수 있습니까?MySQL보기 : 어떤 디자인 패턴을 사용할 수 있습니까?May 16, 2025 am 12:10 AM

mysqlViewScaneFeficTicallyINGILIDESIGNPATTORNSLIKEADAPTER, DECIARATOR, FACTORY 및 OBSERVER.1) AdapterPatternAdAptSDataFromDifferentTablesinToAunifiedView.2) Decor

MySQL에서 뷰를 사용하면 어떤 장점이 있습니까?MySQL에서 뷰를 사용하면 어떤 장점이 있습니까?May 16, 2025 am 12:09 AM

viewsinmysqlarebeneficialforsimplifyingcomplexqueries, envancingsecurity, dataconsistency, andoptimizing promperformance

MySQL에서 간단한보기를 어떻게 만들 수 있습니까?MySQL에서 간단한보기를 어떻게 만들 수 있습니까?May 16, 2025 am 12:08 AM

toeteimpleviewinmysql, usethecreateviewstatement.1) definetheviewwithReateViewview_nameas.2) specifyTesLectStatementToreTrievesiredData.3) usetheViewLikeAtableForqueries.ViewsSimplifyDataAccessAndenHances, ButconSiderFormance

MySQL 사용자 명령문 생성 : 예제 및 공통 오류MySQL 사용자 명령문 생성 : 예제 및 공통 오류May 16, 2025 am 12:04 AM

toCreateUserSinmysql, usethecreateuserstatement.1) foralocaluser : createUser'LocalUser '@'localHost'IndifiedBy'SecurePassword '; 2) foremoteUser : createUser'RemoteUser'@'%'reidentifiedBy'StrongPassword ';

MySQL에서 뷰를 사용하는 한계는 무엇입니까?MySQL에서 뷰를 사용하는 한계는 무엇입니까?May 14, 2025 am 12:10 AM

mysqlviewshavelimitations : 1) 그들은 upportallsqloperations, datamanipulation throughviewswithjoinsorbqueries를 제한하지 않습니다

MySQL 데이터베이스 확보 : 사용자 추가 및 권한 부여MySQL 데이터베이스 확보 : 사용자 추가 및 권한 부여May 14, 2025 am 12:09 AM

적절한 usermanagementInmysqliscrucialforenhancingsecurityandensuringfefficientDatabaseOperation.1) USECREATEUSERTOWDDUSERS,@'localHost'or@'%'.

MySQL에서 사용할 수있는 트리거 수에 영향을 미치는 요인은 무엇입니까?MySQL에서 사용할 수있는 트리거 수에 영향을 미치는 요인은 무엇입니까?May 14, 2025 am 12:08 AM

mysqldoes notimposeahardlimitontriggers, butpracticalfactorsdeteirefectiveuse : 1) ServerConfigurationimpactStriggerManagement; 2) 복잡한 트리거 스케일 스케일 사이드로드; 3) argertableSlowtriggerTriggerPerformance; 4) High ConconcercencyCancaUspriggerContention; 5) m

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.