[MySQL] 프로시저(Procedure) 사용법

2020. 12. 22. 15:45· MySQL

1. 프로시저란

MySQL에서 함수를 정의하는 것이라고 보시면 편합니다, 함수처럼 매개변수를 받고 그에 따라 다른 결과를 나타내는 것이 가능합니다, 프로시저는 SQL 명령의 묶음이라고 볼 수 있고 프로시저로 묶인 SQL문 질의들은 처리될 때 하나의 쿼리로 해석되어 처리합니다.

 

즉 프로시저는 복수의 쿼리를 실행하는데 있어서 중간 쿼리들의 오류를 방지하기 위해 일괄 처리하는 명령어입니다.

 

부연 설명으로 프로시저는 MySQL에서 절차적인 처리를 위해 만든 Storead Procedure에 포함되는 기능입니다.

Storead Procedure 에서는 DB에서 사용할 수 없던 제어문이 사용이 가능합니다, 이에 포함되는 것은 프로시저 말고도 함수, 트리거 등이 있습니다.

 

특징 

- 하나의 쿼리로 해석하여 처리하기에 데이터 처리 속도가 빠르다

- 한 번의 요청으로 여러 SQL문을 실행시킬 수 있다, 그로 인해 외부 PC의 DB 일 경우 네트워크 부하를 줄일 수 있음

- MySQL은 아직 Storead Procedure 의 성능이 타 프로그램에 비해 부족합니다.(프로시저도 마찬가지)

- 프로시저 기능을 통해 코드의 조각화를 할 수 있습니다, java나 php에서 하던 일을 MySQL에서 처리하는 것입니다.

 

 

2. 프로시저 등록

기본적인 형태는 아래와 같습니다.

DELIMITER //
CREATE PROCEDURE mem()
BEGIN
	select * from members;
END
//
DELIMITER ;

 

"DELIMITER //" 을 선언해서 기존 구분 문자인 ";" 에서 "//"로 바꿔줍니다.

 

아래 형식으로 프로시저를 등록할 수 있습니다.

CREATE PROCEDURE 프로시저명(매개변수)

BEGIN 

           SQL 문1;

           SQL 문2;

END

 

프로시저 등록을 마친 후

"DELIMITER ;"을 통해 다시 구분 무자를 ";"으로 바꿔줍니다.

이 작업을 하지 않을 경우 프로시저 등록하는 과정에서 ;으로 인해 에러가 발생합니다.

 

프로시저 사용법과 삭제법은 아래와 같습니다.

call mem;
DROP PROCEDURE mem;

위에서 프로시저을 생성할 때 매개변수가 있었는데요.

아래와 같이 매개변수를 사용할 수 있습니다.

매개변수를 사용하려면 call에서 매개변수를 보내면 되겠죠.

DELIMITER //
CREATE PROCEDURE mem(a INT)
BEGIN
	SELECT * FROM members WHERE ID = a;
END //
DELIMITER ;
CALL mem(2);

마지막으로 아래 명령문으로 만들어진 프로시저의 내용을 확인할 수 있습니다.

반응형

'MySQL' 카테고리의 다른 글

[MySQL] 실행 계획(Query Plan)이 뭔데  (0) 2023.12.02
[MySQL] 뷰(View) 사용법  (0) 2020.12.30
[MySQL] 함수(Function) 사용법  (0) 2020.12.29
[MySQL] 트랜잭션(Transaction) 사용법  (0) 2020.12.29
[MySQL] 트리거(Trigger) 사용법  (0) 2020.12.29
'MySQL' 카테고리의 다른 글
  • [MySQL] 뷰(View) 사용법
  • [MySQL] 함수(Function) 사용법
  • [MySQL] 트랜잭션(Transaction) 사용법
  • [MySQL] 트리거(Trigger) 사용법
DSeung
DSeung
DSeung
Dev log
DSeung
  • 분류 전체보기 (192)
    • PHP (62)
      • Laravel (31)
      • Error (5)
      • Setting (11)
      • Modern PHP (15)
    • Go Lang (51)
      • Study (30)
      • Algorithm (17)
      • Setting (1)
      • Error (3)
    • Java (11)
      • Spring (3)
      • JSP (0)
      • Error (2)
      • Setting (2)
      • 단축키 (2)
    • JavaScript (6)
      • Modern JavaScript (4)
      • Node (1)
    • Android Kotlin (5)
      • Study (4)
      • Error (1)
    • 컴퓨팅 기술 (12)
      • 데이터베이스시스템 (4)
      • Docker (2)
      • 크롤링 & 스크래핑 (1)
      • API (1)
      • 클라우드 (1)
      • 네트워크 (1)
    • MySQL (7)
    • AWS (1)
    • Git (5)
      • GItLab (1)
      • GitHub (4)
    • 도메인 (2)
      • 안과 (2)
    • 자격증 (7)
      • SQLD (1)
      • 정보처리기사 (6)
    • Mac os (1)
    • 나머지 (13)
      • tistory (1)
      • 기타 (9)
      • 일기 (3)
    • 독서 (9)

인기 글

최근 글

블로그 메뉴

  • 홈
  • 태그
전체
오늘
어제
hELLO · Designed By 정상우.v4.2.0
DSeung
[MySQL] 프로시저(Procedure) 사용법
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.