Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 DECLARE로 변수 선언하는 방법 – 저장 프로시저 완벽 가이드

MySQL에서 DECLARE를 사용한 변수 선언

MySQL에서 DECLARE 문은 저장 프로시저(Stored Procedure)나 저장 함수 내부에서 지역 변수를 선언할 때 사용됩니다. 주의할 점은 DECLARE를 일반 SQL문이나 클라이언트 세션에서 직접 사용할 수 없으며, 반드시 BEGIN ... END 블록 안에 작성해야 한다는 것입니다.

기본 문법

declare yourVariableName yourDataType;

필요하다면 선언과 동시에 기본값을 지정할 수도 있습니다.

declare yourVariableName yourDataType default defaultValue;

저장 프로시저 생성 예제

실제 동작을 이해하기 위해 입력받은 숫자의 제곱 값을 계산하는 저장 프로시저를 만들어 보겠습니다.

mysql> delimiter //
mysql> create procedure square_demo(in Value int)
    begin
    declare magicValue int;
    set magicValue=Value;
    select concat('Your Square Value=',magicValue*magicValue) as Output;
    end ;
    //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

위 프로시저의 동작 방식을 단계별로 살펴보면 다음과 같습니다.

  • declare magicValue int; — 정수형 지역 변수 magicValue를 선언합니다.
  • set magicValue=Value; — 입력 매개변수 Value의 값을 magicValue에 대입합니다.
  • select concat(...) — 변수의 제곱 값을 문자열과 함께 결과로 출력합니다.

저장 프로시저 호출하기

CALL 명령어를 사용하여 저장 프로시저를 실행할 수 있습니다.

mysql> call square_demo(15);

실행 결과는 다음과 같습니다.

+-----------------------+
| Output                |
+-----------------------+
| Your Square Value=225 |
+-----------------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)

입력값 15의 제곱인 225가 정상적으로 출력되는 것을 확인할 수 있습니다.

DECLARE 사용 시 주요 참고 사항

  • DECLARE는 반드시 BEGIN ... END 블록의 시작 부분, 즉 다른 문장들보다 먼저 위치해야 합니다.
  • 쉼표로 구분하여 여러 변수를 한 번에 선언할 수 있으며, DEFAULT 키워드로 초기값을 설정할 수 있습니다.
  • 저장 프로시저 외부에서는 SET @변수명 = 값; 형태의 사용자 정의 변수를 사용할 수 있지만, 이는 세션 전체에서 유효하다는 점에서 DECLARE로 선언한 지역 변수와 차이가 있습니다.