MySQL 저장 프로시저에서 두 개의 변수 선언 후 곱셈 연산하기
MySQL 저장 프로시저 내부에서는 DECLARE 문을 사용하여 지역 변수를 선언할 수 있습니다. 이번 글에서는 두 개의 정수형 변수를 선언하고 값을 할당한 뒤, 두 값의 곱셈 결과를 조회하는 저장 프로시저를 만드는 과정을 단계별로 살펴보겠습니다.
1. 저장 프로시저 생성
먼저 CREATE PROCEDURE 문으로 저장 프로시저를 생성합니다. 프로시저 본문 안에서 DECLARE로 변수를 선언하고, SET으로 값을 할당한 후 SELECT로 결과를 반환합니다.
mysql> delimiter //
mysql> create procedure declare_demo_sp()
begin
declare Value1 int;
declare Value2 int;
set Value1=100;
set Value2=2000;
select Value1,Value2,Value1*Value2 as MultiplicationResult;
end
//
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
코드 설명:
delimiter //: 저장 프로시저 내부의 세미콜론(;)이 SQL 문 종료로 해석되지 않도록 구분 기호를 임시로 변경합니다.declare Value1 int;,declare Value2 int;: 정수형(INT) 지역 변수 Value1과 Value2를 각각 선언합니다.set Value1=100;,set Value2=2000;: 선언된 변수에 100과 2000이라는 값을 할당합니다.select ... as MultiplicationResult;: 두 변수의 값과 곱셈 결과를 함께 조회하며, 별칭(Alias)을 지정해 결과 컬럼명을 명확하게 표시합니다.delimiter ;: 작업이 끝난 후 구분 기호를 원래대로 되돌립니다.
2. 저장 프로시저 호출
생성된 저장 프로시저는 CALL 명령어를 통해 실행할 수 있습니다.
mysql> call declare_demo_sp();
3. 실행 결과 확인
프로시저를 호출하면 다음과 같은 결과가 출력됩니다.
+--------+--------+----------------------+ | Value1 | Value2 | MultiplicationResult | +--------+--------+----------------------+ | 100 | 2000 | 200000 | +--------+--------+----------------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec)
출력 결과에서 확인할 수 있듯이, Value1(100)과 Value2(2000)의 곱인 200000이 MultiplicationResult 컬럼에 담겨 반환됩니다. 이처럼 저장 프로시저 안에서 변수를 선언하고 활용하면 여러 단계의 계산 로직을 하나의 단위로 묶어 재사용성과 유지보수성을 높일 수 있습니다.