bskyvision RSS 태그 관리 글쓰기 방명록
2021-05-01 09:21:47
728x90

오늘은 스토어드 프로시저(stored procedure)에 대해서 알아보도록 하겠습니다. 스토어드 프로시저는 일련의 SQL문들을 하나로 묶어서 한 번에 수행할 수 있도록 도와주는 기능입니다. 

 

스토어드 프로시저는 다음과 같이 만듭니다. 

 

DELIMITER //

CREATE PROCEDURE 프로시저명()

BEGIN

 

SQL문

...

SQL문

 

END //

DELIMITER ;

 

호출할 때 사용할 이름을 만들어 주고, BEGIN과 END // 사이에 SQL 문들을 넣어주면 됩니다. 

 

그리고 생성한 프로시저를 호출할 때는 다음과 같이 명령을 주면 됩니다.

 

CALL 프로시저명();

 

한 번 예시를 보여드리겠습니다. test 데이터베이스에 student라는 테이블이 있는 상황이라고 가정하겠습니다.

 

 

위와 같이 프로시저를 만들고, CALL로 호출했더니 두 개의 SQL 문이 순차적으로 실행된 것을 확인하실 수 있습니다. 첫번째 SQL문으로 인해서 22개의 행이 반환되었고, 두번째 SQL문으로 인해서 1개의 행이 반환된 것입니다.

 

한 번 생성한 스토어드 프로시저는 수정이 안 됩니다. 변경하고 싶다면 기존에 생성한 프로시저를 삭제한 후에 다시 생성해야 합니다. 삭제하는 방법은 다음과 같습니다.

 

DROP PROCEDURE 프로시저명();

 

방금 예제에서 생성한 프로시저를 삭제하고 싶다면, DROP PROCEDURE exProc(); 을 실행하면 됩니다. 

 

스토어드 프로시저는 실무에서 많이 쓰인다고 하니, 익혀두시면 좋을 것 같습니다.  

댓글

방문해주신 모든 분들을 환영합니다.

* 글을 읽던 중에 궁금했던 부분은 질문해주세요.

* 칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.

* 최대한 답변 드리도록 노력하겠습니다.

* 욕설과 광고를 담은 댓글은 가차없이 삭제합니다.


  1. BlogIcon 꼬장스카이비전@2021.05.06 17:01 ~$ 일련의 SQL문들을 하나로 묶어서 한 번에 수행할 수 있도록 도와주는 기능입니다.

    이라는건 알겠는데, 왜 SQL문들을 하나로 묶어서 한 번에 수행해야하나요? [댓글주소]  [수정/삭제]  [답글작성]
guest@이름 ~$
guest@패스워드 ~$
guest@홈페이지주소작성 ~$

guest@댓글작성 ~$




bskyvision. Designed by bskyvision.