본문 바로가기
programming/DataManage

mysql 프로시저 만드는 방법 how to make mysql procedure

by 개코 - 개발과 코딩 2022. 10. 8.

mysql 프로시저를 만드는 방법은 CREATE PROCEDURE 를 사용하고, BEGIN END 구문 내부에 데이터를 처리할 SQL 쿼리를 작성한다. 프로시저에 익숙해지면 SQL 명령어를 프로시저로 만들어 일괄처리할 수 있다. 그리고 재사용을 통해 개발시간을 단축할 수 있으며, 유지보수에도 수월하다.

mysql 프로시저 만드는 방법
how to make mysql procedure

프로시저를 만들 때 CREATE 명령어를 사용하여 함수처럼 만들어 사용한다.

SQL 에 익숙해 지면 프로그램 코드에서 작업할 데이터 작업을 SQL 데이터베이스에서 처리할 수 있다.

데이터의 자체적인 조작은 코드보다는 데이터베이스에서 처리하여 전체적인 처리 속도를 높일 수 있는 장점이 있다.

프로시저를 만들어 사용하는 목적이 있다면 복잡하고 여러가지의 작업을 함수처럼 만들어 재사용을 하기 위함이며, 일괄처리를 함으로써 프로그램 코드에서 처리할 작업을 줄일 수도 있다.

프로시저 만들기 CREATE

mysql 에서 프로시저를 만들 떄 사용하는 명령어는 CREATE PROCEDURE 구문을 사용한다.

작업할 데이터베이스 작업은 BEGIN ~ END 사이에 입력하여 명령어를 입력한다.

작업할 쿼리는 SELECT 가 될 수 도 있고, INSERT 가 될 수도 있고, 작업자가 원하는 부분을 SQL 쿼리 형식으로 입력하면 된다.

업무에 필요한 SQL을 만들다 보면 중복적인 작업들이 생길 수 있는데 이런 프로시저를 사용하면 재사용 등의 이점을 누릴 수 있다.

CREATE PROCEDURE 프로시저명()
BEGIN
	작업할 SQL 쿼리
END

샘플 코드

아래의 프로시저는 현재 시간을 호출하는 출력하는 프로시저이다.

CREATE PROCEDURE 를 이용하여 프로시저를 만들고 NOW() 내장함수를 이용하여 현재 시간을 출력하도록 하였다.

프로시저의 호출은 CALL 명령어를 사용한다.

이제 아래의 SQL 코드의 순서는 다음과 같다.

  • USE 명령어를 사용하여 데이터베이스를 선택한다.
  • DROP PROCEDURE IF EXISTS 을 사용하여 기존에 프로시저가 있다면 삭제한다.
    테스트를 위해 만든 것이다. 실제 업무에선 특별한 경우 외에 사용할 일은 없다.
  • CREATE PROCEDURE 을 사용하여 프로시저를 만든다.
  • BEGIN ~ END 구문 내에 자신이 사용할 SQL 쿼리를 사용한다.
    여기에서 NOW() 함수를 사용하여 현재 시간을 출력하도록 하였다.
  • CALL 명령어를 사용하여 프로시저를 실행한다.
use database_선택
;

DROP PROCEDURE IF EXISTS PROC_TEST
;

DELIMITER $$
CREATE PROCEDURE PROC_TEST()
BEGIN
	
	SELECT NOW();
    
END $$
DELIMITER ;

CALL PROC_TEST();

결과 확인

위의 쿼리에 대한 결과를 확인해 본다.

프로시저를 만드는 방법은 어렵지 않다.

CREATE PROCEDURE 를 사용하여 프로시저를 만들고 BEGIN ~ END 구문 사이에 업무나 처리하고자 하는 SQL 쿼리를 작성하면 된다.

프로시저의 호출은 CALL 명령어를 사용한다.

예제로는 BEGIN ~ END 구문 내부에 NOW() 명령어를 사용하여 현재 시간을 출력하도록 하였다.

반응형

댓글