root@bskyvision: ~#
방명록
태그
RSS

<닫기>

3,585,391/3,798/595

프로필사진
수많은 소음 속에서 신호를 찾아가는 bskyvision입니다.


<닫기>

  • leon_choi이(가) 08.10에 작성한 댓글: 멋쟁이.
  • 꼬장이이(가) 07.25에 작성한 댓글: test.

<닫기>

2021-05-01 09:21:47

오늘은 스토어드 프로시저(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. 꼬장스카이비전이(가) 2021.05.06 17:01에 작성한 댓글:
    일련의 SQL문들을 하나로 묶어서 한 번에 수행할 수 있도록 도와주는 기능입니다.

    이라는건 알겠는데, 왜 SQL문들을 하나로 묶어서 한 번에 수행해야하나요?
      주소   수정/삭제   답글
이름
비밀번호
홈페이지
비밀여부