SQL은 DB에서 사용되는 언어이다.
앞에서 본 내용들을 총합하면 SQL을 사용하는 경우 자동화하지 않고 반복적으로 사용하기에는 상당히 불편하고 한계가 명확하다.
MYSQL의 스토어드 프로시저는 이러한 한계를 극복하기 위해 SQL에 프로그래밍 기능을 추가해서 일반 프로그래밍 언어와 비슷한 효과를 낼 수 있도록 한다.
먼저 완전한 형식을 알기 전에 실제로 사용하는 간단한 형식부터 알아본다.
일반 프로그래밍 언어와 차이점은 있으나, MYSQL 내부에서 사용할 때 적절한 프로그래밍 기능을 제공한다.
쿼리문의 집합으로도 볼 수 있는 스토어드 프로시저는 어떠한 동작을 일괄 처리하기 위한 용도로도 사용하는데, 자주 사용하는 일반적인 쿼리를 반복하는 것보다는 스토어드 프로시저로 묶어 놓고 필요할 때마다 간단히 호출만 하면 훨씬 편리하게 운영할 수 있도록 한다.
필수적인 형식은 아래와 같다.
DELIMITER $$
CREATE PROCEDURE 스토어드_프로시저_이름 (IN 또는 OUT 매개변수)
BEGIN
SQL 프로그래밍 코드
END$$
DELIMITER ;
CREATE PROCEDURE는 스토어드 프로시저를 만든 것뿐이며, 실행을 한 것은 아니다.
호출하는 형식은 아래와 같다.
CALL 스토어드_프로시저_이름();
스토어드 프로시저에서는 실행 시 입력 매개변수를 지정할 수 있다.
IN 입력_매개변수_이름 데이터형식
입력 매개변수가 있는 스토어드 프로시저를 실행하는 경우 아래와 같이 괄호 안에 값을 전달해야한다.
CALL 프로시저_이름(전달_값);
스토어드 프로시저에서 처리된 결과를 출력 매개변수를 통해 얻을 수도 있습니다.
OUT 출력_매개변수_이름 데이터형식
출력 매개변수에 값을 대입하기 위해서는 주로 SELECT INTO 를 사용한다.
출력 매개변수가 있는 스토어드 프로시저를 실행하기 위해서는 다음과 같이 사용한다.
CALL 프로시저 이름(@변수명)
SELECT @변수명;