본문 바로가기
[파이썬]/데이터베이스

[MariaDB] 저장 프로시저의 개념과 생성 및 호출

by sung min_Kim 2023. 11. 28.
저장 프로시저


데이터베이스 루틴


 · 저장 프로시저란

 
 저장 프로시저는 SQL에서 사용할 수 있는 프로그래밍 기능 중 하나이다. 저장 프로시저는 하나 이상의 SQL 문장을 포함하는 루틴을 의미하며, 이 루틴은 데이터베이스에 저장되어 필요할 때 호출하여 사용할 수 있다.

 여기서 말하는 '루틴'이란 반복적으로 수행되는 일련의 동작이나 작업을 의미한다. 컴퓨터 프로그래밍에서는 "특정 작업을 수행하는 코드의 묶음"을 가리키는 용어로도 사용된다.

 데이터베이스에서 루틴은 저장 프로시저나 함수 등과 같이 일련의 SQL 명령문을 묶어 놓은 것을 의미한다. 이 루틴은 데이터베이스 작업을 효율적으로 수행하도록 돕는다.

 


· 저장 프로시저를 사용하는 이유는 ?

 

 

  • 코드 재사용 : 저장 프로시저는 한 번 작성하면 여러 번 사용할 수 있으므로 코드를 재사용할 수 있다.


  • 효율성 : 저장 프로시저는 데이터베이스 서버에서 직접 실행되므로 네트워크 트래픽을 줄이고 처리 속도를 높일 수 있다.


  • 보안 : 저장 프로시저를 사용하면 SQL 쿼리를 직접 노출하지 않고 처리할 수 있으므로 데이터 접근을 보다 안전하게 관리할 수 있다.


  • 유지 보수 : 저장 프로시저를 변경하면 그 변경이 저장 프로시저를 사용하는 모든 애플리케이션에 바로 반영되므로 유지 보수가 쉽다.

 


· 저장 프로시저 생성 방식

 

Delimiter //
Create Procedure procedure_name
Begin
   
   SQL 문;

End //
Delimiter ;


 'Create Procedure' 명령어를 사용하여 'procedure_name' 이름의 저장 프로시저를 생성한다.

 'SQL 쿼리 문'은 저장 프로시저가 실행할 SQL 문장이다.

 'Delimiter'는 SQL 문장의 끝을 나타내는 문자(;)를 변경하는 명령어로, 본문에 여러 SQL 문장을 사용할 때 필요하다.

 생성된 저장 프로시저는 'Call procedure_name' 구문을 통해 호출할 수 있다. 'Call'은 SQL에서 저장 프로시저를 실행하라는 명령어이다. 즉 Call 다음에 지정한 프로시저 이름에 해당하는 저장 프로시저를 호출하여 그 내부에 정의된 SQL 문장들을 실행하라는 의미이다.

 


· 예시

 

<예제_저장 프로시저 생성 및 호출> "주문 내역이 존재하지 않은 회원 조회"에 대한 Select 문을 저장 프로시저로 만들어 활용하기

저장 프로시저 생성하기

 'Create Procedure spNoCartMember()' 구문을 통해 'spNoCartMember' 이름의 저장 프로시저를 생성하고자 한다.
 "주문 내역이 존재하지 않은 회원 조회"에 대한 SQL 문을 저장 프로시저의 본문에 명시함으로써, 위의 저장 프로시저는 해당 SQL 문에 대한 값을 저장한다.

저장 프로시저 호출하기

 생성한 저장 프로시저는 'Call' 명령어를 통해 내부에 저장한 SQL 문장들을 실행한다.