본문 바로가기
개발/MySql

저장 프로시저(Store Procedure)

by 꼼냥냥 2022. 4. 14.
728x90

1. 저장 프로시저란?

  • 일련의 작업 절차를 정리해서 저장한 것
  • 여러 SQL문을 묶어서 미리 정의해 두고 하나의 요청으로 실행할 수 있음
  • 자주 사용되는 복잡한 작업들을 간단하게 실행 할 수 있음
  • Application에서 직접 모든 작업을 요청하지 않아도 되기 때문에 부하가 줄어들고 보안이 향상됨
  • 검증되지 않은 저장 프로시저를 실행하는 것은 매우 위험함
  • MySQL은 5.0버전부터 사용 가능

2. 저장 프로시저 사용

2-1. 저장 프로시저 만들기

저장 프로시저 구문 사용

BEGIN에서 END까지가 저장 프로시저의 본체이다.

시작 부분에 BEGIN, 끝 부분에 END를 붙여 저장 프로시저의 명령 범위를 명확히 하고 있다.

 

구분 문자(;) 변경하기

명령문이 완성되지 않은 상태에서 실행되는 부분을 막기 위해 저장 프로시저에서 END를 입력하고 나서 CREATE PROCEDURE 명령이 실행되도록 환경을 변경해야 한다.

그러러면 저장 프로시저를 작성하기 전에 구분 문자를 ‘;'이 아닌 다른 문자로 변경해 두는데, 일반적으로 '//’를 사용한다.

구분 문자를 ‘//’로 변경할 때는 DELIMITER명령을 사용한다.

 

구분 문자를 //으로 변경해 두면 저장 프로시저를 작성하는 도중에 ‘;'을 입력해도 문제 없고, END 뒤에 ‘//’을 입력하면 CREATE PROCEDURE명령이 실행된다. 물론, 저장 프로시저를 모두 작성했으면 ‘DELIMITER;’로 구분 문자를 원래대로 되돌려 놓는다.

 

저장 프로시저 사용 예시

 

2-2. 저장 프로시저 실행하기

‘CALL’ 이라는 명령을 사용해서 저장 프로시저를 실행한다.

저장 프로시저 실행

2-3. 설정한 값 이상인 레코드만 표시하는 저장 프로시저 만들기

처리하고자 하는 데이터를 괄호()안에 대입해서 저장 프로시저를 실행한다.

 
저장 프로시저에 인수 대입 사용

 

2-4. 저장 프로시저 삭제하기

DROP 명령을 사용하여 저장 프로시저를 삭제한다.

저장 프로시저 삭제

728x90

'개발 > MySql' 카테고리의 다른 글

Trigger (트리거)  (0) 2022.04.15
저장 함수(Stored Function)  (0) 2022.04.15
쿼리 작성 및 최적화  (0) 2022.04.13
파티션(Partition)  (0) 2022.04.12
장애 처리  (0) 2022.04.11

댓글