DB/mysql(mariaDB)

stored procedure(저장 프로시저) 만들기

자코린이 2022. 6. 19. 17:19

저번글에서 적었듯 sp(저장 프로시저)는 장점과 단점들이 있습니다.

하지만 빠른 처리속도와 DB의 보안을 간단하게 높여준다는 것에서는 장점이 있습니다.

 이번편에서는 저장 프로시저를 어떻게 만들고 실행하는지 알아보겠습니다.

 

DELIMITER $$ 
CREATE PROCEDURE 프로시저 이름() 
BEGIN 
	SELECT 뽑을 이름 
    FROM 사용할 테이블
    [where][order by][group by];
END $$ 
DELIMITER ;

 

1. 처음에 문단의 마침을 ; 에서 $$로 바꾸어 준다는 의미의 DELIMITER를 사용합니다. (꼭 $$가 아니어도 됩니다.)

2. 다음은 프로시저를 생성하는 단계입니다. 

CREAT PROCEDURE 이름()으로 생성합니다.

3. BEGIN 을 시작으로 프로시저 내용을 적습니다.

이 곳이 핵심 로직입니다.

4. END $$ 로 프로시저의 끝을 알립니다.

5. DELIMITER 를 사용하여 $$로 되어있던 마침을 ;로 다시 바꾸어 줍니다.

6. 만든 프로시저 호출은 아래 쿼리를 사용합니다.

CALL 프로시저 이름();

 

저장 프로시저를 위처럼 직접 만들어도 되지만, 보통은 툴을 사용합니다.

window는 heidisql을 추천드립니다.

 

저장 프로시저의 전체적인 틀을 정리해보았습니다. 

스프링에서는 ibatis나 mybatis를 사용하여 데이터를 spring내부에서 처리하지만 이렇게 DB내부에서 데이터를 처리하는 방법도 있다고 알아 두시면 도움이 됩니다.

 

이 외에도 매개변수 선언 내부 변수 선언, 반복, 조건문 등이 쓰입니다.

이 내용은 추후에 적겠습니다.

 

 

'DB > mysql(mariaDB)' 카테고리의 다른 글

Mysql Trigger(트리거)  (0) 2022.06.28
피벗(PIVOT) 테이블  (0) 2022.06.19
mysql stored procedure(저장 프로시저) 란?  (0) 2022.06.06
두 날짜의 차이값 계산 함수(TIMESTAMPDIFF)  (0) 2022.05.25
sql error 1262  (0) 2022.03.25