정처기를 공부하던 때에도 항상 마주하기 싫어서 도망쳤던 프로시저를 과제에서 만나버렸습니다.

이번에는 피할 수 없기에 어쩔 수 없이 부딪혀야했는데, 친구에게 도움을 받게되어 그 내용을 까먹지 않기 위해 블로그에 기록해둘 용도로 이번 포스팅을 작성해봅니다!

 

틀린 내용이 있다면 가차없이 댓글을 달아주시면 바로 반영하도록 하겠습니다!!

 

목차


    0. 프로시저가 뭐지?

    프로시저 일련의 쿼리를 한번에 실행하기 위한 요소입니다.

    자주 사용되는 복잡한 작업들을 간단하게 실행하는 용도로 사용할 수 있습니다.

     

    비슷한 요소로 사용자 정의 함수라는것도 존재하는데, 실행 후에 결과값을 반환한다는 차이점이 있습니다.

    그 외에도 여러 차이점이 존재하는데, 다양한 제약사항이 있어서 실제로는 프로시저를 비교적 많이 사용한다고 합니다.

     

    아래 사진은 다른 분께서 함수와 프로시저의 차이에 대해 깔끔하게 정리해놓은 표가 있어서 가져왔습니다.

    실제로 해당 내용을 사용할 때에는 필요에 따라 맞는 요소를 사용하는 것이 필요합니다.

     

    출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=xhdtn8070&logNo=221235042612

     

    이제 아래 포스팅에서는 실제로 MySQL Workbench를 통해서 프로시저를 만들어보려고 합니다!!


    1. 테이블 만들기

    아예 스키마를 만드는 것부터 시작하겠습니다.

     

    Navigator탭의 Schemas에서 오른쪽 마우스버튼을 눌러서 스키마를 하나 만들어줍니다.

    이름은 아무거나 해도 상관이 없습니다!

    이름을 설정하고 하단 apply를 눌러줍니다.

     

     

    apply를 누르면 SQL 쿼리문이 화면에 뜹니다.

     

    굳이 마우스로 하지 않아도 되지만, 편리하게 만들기 위해서 이런 방식으로 만들었습니다.

    당연히 Apply를 하면 Schema가 생성됩니다.

     

     

    이제 새로고침을 해보면 test_schema가 생긴 모습을 볼 수 있습니다.

     

     

    이제 왼쪽의 화살표를 누른 다음에 테이블을 생성해줍니다.

     

     

    이제 컬럼들을 생성해줍니다.

    이건 원하는 대로 생성해주면 됩니다.

    이 작업을 모두 끝내고 오른쪽 하단에 Apply를 누르면 테이블 생성이 모두 완료됩니다.

     

     

    잘 생성된 쿼리문을 확인하고 Apply를 다시 눌러주면 끝입니다!

     

     

    완성된 테이블을 확인해보면, Column 역시 잘 생성된 모습을 보실 수 있습니다.

     

     


    2. 프로시저 생성

    프로시저를 편하게 생성하기 위해서, Stored Procedures를 사용합니다.

    Stored Procedures에서 오른쪽 단추를 누르고 Create Stored Procedure를 누릅니다.

     

     

    그러면 아래와 같이 기본 환경이 만들어집니다.

     

    이제 프로시저에 내용을 채워봅시다.

     

    new_procedure 부분이 프로시저의 이름이 되고, () 안에는 매개변수가 들어가고 BEGIN과 END 부분이 함수의 동작부분({}로 둘러싸인 부분)이라고 생각하시면 됩니다.

     

     

    아래 사진을 보면 프로시저의 이름을 설정하고, 매개변수를 넣고, 동작을 위한 쿼리문을 만들었습니다

    매개변수로 ID, NAME, INFO를 받아서 해당 내용을 테이블의 id, name, info에 넣는 방식으로 동작합니다.

    (테이블의 모든 내용을 insert하기 때문에 test_table 뒤의 (id, name, info)생략해도 무관합니다!)

     

     

    그리고 오른쪽 아래에 위치한 Apply를 눌러주면 완료됩니다!

     

     

    왼쪽의 Navigator를 보면 잘 추가된 모습을 볼 수 있죠?!

     

     


    3. 프로시저 사용

    이제 실제로 만든 프로시저를 사용해보겠습니다.

    테이블에 마우스를 가져다대면 세 가지의 메뉴가 나오는데, 맨 오른쪽 버튼을 누르면 쿼리문을 작성할 수 있는 공간이 나옵니다.

    (첫 번째는 정보, 두 번째는 테이블의 컬럼 이름 및 속성을 수정할 수 있는 메뉴입니다!)

     

     

    이걸 누른 이후에 실제로 쿼리문을 작성해봅니다.

     

    우리가 만든 프로시저는 CALL을 통해서 불러올 수 있습니다.

    CALL 뒤에 함수를 사용하듯이 아까 작성한 양식대로 데이터를 넣어주기만 해도 완성됩니다.

    select문을 통해서 내용을 확인하면? 데이터가 잘 들어간 모습을 볼 수 있습니다!!

     

     


    4. 결론

    반복된 작업을 빠르고 쉽게 처리할 수 있게 해주는 요소가 바로 프로시저입니다.

    다른 프로그래밍 언어에서 함수를 만들어서 편리하게 반복작업을 처리하는 것처럼, 사용법을 명확히 파악하고 적절한 곳에 사용한다면 보다 빠르고 효율적으로 SQL 쿼리를 짤 수 있을 것입니다 :)

     

    마지막으로 해당 내용을 깔끔하게 설명해준 Github @jiwon0297님에게 감사인사를 드립니다!


    5. 참고자료

     

    [MySQL] 저장 프로시저, 저장 함수

    1. 저장 프로시저 (Stored Procedure) 1) 저장 프로시저 일련의 작업 절차를 정리해서 저장한 것이다. 여러 SQL문을 묶어서 미리 정의해 두고 하나의 요청으로 실행할 수 있다. 자주 사용되는 복잡한 작

    ozofweird.tistory.com

     

    [MySQL] 스토어드 프로시저(Stored Procedure) 기본

    개요 평소 SQL을 사용할 때 일반적인 쿼리문을 자주 사용하게 되는데 특정한 경우 프로시저를 사용하면 편리성면에서 높은 효과를 볼 수 있을 것 같다는 생각이 문득 들었고 또, 자주 사용하는

    spiderwebcoding.tistory.com

    반응형
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기