MySQL의 저장 프로시저(Stored Procedure)를 활용하면 복잡한 계산 로직을 데이터베이스 내부에서 간편하게 처리할 수 있습니다. 이번 글에서는 저장 프로시저를 생성하여 금액(amount) × 수량(quantity)과 같은 수학 연산을 수행하는 방법을 알아보겠습니다.
1. 저장 프로시저 생성하기
먼저 delimiter 명령어로 구분 기호를 변경한 뒤, 두 개의 정수형 매개변수를 받아 곱셈 결과를 반환하는 저장 프로시저를 만들어 보겠습니다.
mysql> delimiter // mysql> create procedure calculation_proc(amount int,quantity int) begin select amount,quantity,(amount*quantity) as Total; end // Query OK, 0 rows affected (0.00 sec) mysql> delimiter ;
위 코드에서 핵심 부분은 다음과 같습니다.
delimiter //: 프로시저 내부의 세미콜론(;)이 SQL 종료로 해석되지 않도록 구분 기호를 임시로 변경합니다.create procedure calculation_proc(amount int, quantity int): 정수형 매개변수 두 개를 받는 프로시저를 생성합니다.(amount*quantity) as Total: 두 값의 곱셈 결과에 'Total'이라는 별칭을 붙여 출력합니다.delimiter ;: 프로시저 생성이 끝나면 구분 기호를 원래대로 되돌립니다.
2. 저장 프로시저 호출하기
생성된 저장 프로시저는 CALL 명령어를 사용해 호출할 수 있습니다. 여기서는 금액 250과 수량 3을 인자로 전달해 보겠습니다.
mysql> call calculation_proc(250,3);
3. 실행 결과 확인
프로시저가 정상적으로 실행되면 다음과 같이 amount, quantity, 그리고 곱셈 결과인 Total이 함께 출력됩니다.
+--------+----------+-------+ | amount | quantity | Total | +--------+----------+-------+ | 250 | 3 | 750 | +--------+----------+-------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec)
정리
이처럼 MySQL 저장 프로시저를 사용하면 반복적인 연산 작업을 하나의 프로시저로 정의해 두고, 필요할 때마다 매개변수만 바꿔 간편하게 재사용할 수 있습니다. 덧셈, 뺄셈 등 다른 수학 연산도 같은 방식으로 응용할 수 있으며, 실무에서는 더 복잡한 비즈니스 로직을 프로시저 안에 구현해 활용하기도 합니다.