본문 바로가기
Database/MYSQL

Mysql - Stored Procedure 사용 방법 - 1

by 반화넬 2023. 7. 28.
반응형
안녕하세요. 
Mysql DB를 정말 오랬동안 사용하고 있는데요. 처음 나왔을때는 아니겠지만 버젼 4부터 사용해서 버젼 8까지 지금까지 사용하고있는듯합니다. 처음에는 DB 테이블이 수시로 깨지고 했었는데 5.5 이후부터 안정적인 서비스 운영이 가능해지면서 지금은 많은 업체에서 사용하고 있는것 같아요. 오늘은 Mysql Stored Procedure 사용 방법에 대해서 알아보도록 하겠습니다.
Mysql procedure COMMIT ROLLBACK
 
•프로시저는 절차형 sql 을 활용하여 특정 기능을 수행 할 수 있는 트랜잭션 언어.
•일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합.
•프로시저는 호출을 통해 실행.

프로시저 의 장점

1. Stored procedure를 처음 호출하면 MySQLDBcatalog에서 이름을 찾아서

   Stored procedure의 코드를 compile하여 메모리 영역에 캐시로 저장한 후

   Stored procedure를 실행.

2. 동일한 session에서 같은 stored procedure를 재호출 하면 MySQL은 기존에 있는 캐시로 실행.    
   (컴파일을 다시 거치지 않음)
3. Stored procedure는 다른 stored procedure 또는 stored function을 호출하여 코드를 만들(modulize)수 있음.

Mysql procedure COMMIT ROLLBACK

4. Declare : 변수와 인수 그리고 그에 대한 데이터 타입을 정의하는 부분
5. Begin / end : 다수 실행을 제어하는 기본

> 적 단위가 되며 논리적 프로세스를 구성

> 프로시저의 실행시작과 종료를 알려주는 부분으로 BEGIN, END는 프로시저에 반드시 포함되어야 한다.

6. CONTROL 제어부
> 실행흐름을 제어하는 부분으로 조건문과 반복문으로 나뉩니다.

 

Mysql procedure COMMIT ROLLBACK

7. If – elseif – else

특정 조건에 따라 처리


8. 
단순 case

명확한 값을 가지는 집합에대한 표현식의 값을 매칭
 
9, 조건 case
If 문과 비슷하지만 가독성이 좋다.

 

Mysql procedure COMMIT ROLLBACK

10. Loop

특정 조건이 만족할 때까지 반복

 

11. While

조건이 참일 경우 반복 / 조건이 거짓이거나 exit when 조건 만족시 종료

 

12. For loop

시작과 끝 값을 지정하여 해당 값이 구간 내에 있을때 까지 반복

 

EXCEPTION   예외부

 

1 .BEGIN ~  END절에서 실행되는 SQL문이 실행될 때 예외 발생시 예외 처리 방법을 정의하는 처리부
2. 실행 중 발생 가능한 예외상황을 수행하는 부분
EXCEPTION

WHEN 조건 THEN 

SET 명령어;

 

TRANSACTION 실행부

1 .수행된 데이터 작업들을 DB에 적용할지 취소할지 결정하는 처리부
2. COMMIT: 하나의 트랜잭션이 성공적으로 끝났을 때 사용
3. ROLLBACK : 비정상적으로 종료되어 다시시작하거나 연산을 취소할 때 사용

 

마무리

 

프로시져의 기본 문법은 많은 프로그램과 비슷합니다. IF, CASE 문을 바탕으로 기본 변수 세팅등 방식은 비슷하나 사용하는 함수와 명령어가 조금씩 다를뿐입니다. 다음에는 프로시져 예제를 기준으로 가벼운 프로시져 만들어보고 설명하겠습니다. 

 

감사합니다. 

반응형