본문 바로가기

sql

7.1 스토어드 프로시저 사용 방법

7.1 스토어드 프로시저 사용 방법

핵심 키워드: 스토어드 프로시저, BEGIN ~ END, CALL, 입력 매개 변수, 출력 매개변수, 동적 SQL

  • 스토어드 프로시저는 SQL에 프로그래밍 기능을 추가해서 일반 프로그래밍 언어와 비슷한 효과를 낼 수 있다.

1. 스토어드 프로시저 기본

1-1. 스토어드 프로시저의 개념과 형식

1-1-1개념

  • 스토어드 프로시저란 MYSQL에서 제공하는 프로그래밍 기능이다
  • MYSQL 내부에서 사용할 때 적절한 프로그래밍 기능을 제공해준다.

    1-1-2 형식

    DELIMITER $$ -----------------------------------------------------------------|
    CREATE PROCEDURE 스토어드_프로시저_이름( IN 또는 OUT 매개변수) -- 2 |
    BEGIN |-- 1
    (이 부분에 SQL 프로그래밍 코드를 작성 |
    END $$ --------------------------------------------------------------------|
    DELIMITER;
    1. 필수 항목으로 스토어드 프로시저를 묶어주는 기능을 한다. $$는 $ 1개만 사용해도 되지만 명확하게 표시하기 위해 2개를 사용한다. ##, %%, &&, //등으로 바꿔도 된다.
    1. 스토어드 프로시저의 이름을 정해 준다.

1-1-3 호출방식

CALL 스토어드_프로시저_이름();

1-2. 스토어드 프로시저의 생성

DELIMITER $$
CREATE PROCEDURE user_proc() -- 1
BEGIN
SELECT * FROM member; -- 2
END $$
DELIMITER ;

CALL user_proc(); -- 3

    1. 스토어드 프로시저를 만드는 구문이다. 이름은 user_proc로 지정했다.
    1. 스토어드 프로시저의 내용이다.
    1. 생성한 user_proc라는 스토어드 프로시저를 실행한다.

1-3. 스토어드 프로시저의 삭제

DROP PROCEDURE 스토어드_프로시저_이름

2. 스토어드 프로시저 실습

2-1. 매개변수의 사용

  • 스토어드 프로시저에서는 실행 시 입력 매개변수를 지정할 수 있다. 형식은 다음과 같다
    IN 입력_매개변수_이름 데이터_형식
  • 입력 매개변수가 있는 스토어드 프로시저를 실행하기 위해서는 다음과 같이 괄호 안에 값을 전달하면 된다.
    CALL 프로시저_이름(전달_값);
  • 스토어드 프로시저에서 처리된 결과를 출력 매개변수를 통해 얻을 수 있다. 출력 매개 변수의 형식은 다음과 같다.
    OUT 출력_매개변수_이름 데이터_형식
  • 출력 매개변수에 값을 대입하기 위해서는 주로 SELECT~INTO 문을 사용한다. 코드를 실행 하기 위해서는 다음과 같이 사용한다.
    CALL 프로시저_이름(@변수명);
    SELECT @변수명;

##2-2 입력 매개변수의 활용
USE market_db;
DROP PROCEDURE IF EXISTS user_proc1;
DELIMITER $$
CREATE PROCEDURE user_proc1(IN userName VARCHAR(10)) -- 2
BEGIN
SELECT * FROM member WHERE mem_name = userName; -- 3
END $$
DELIMITER ;

CALL user_proc1('에이핑크'); -- 1

    1. '에이핑크;를 입력 매개변수로 전달
    1. userName 매개변수에 대입
    1. '에이핑크'에 대한 조회를 수행

'sql' 카테고리의 다른 글

6-3 인덱스의 실제 사용  (0) 2023.02.25
MYSQL_DB불러오기_Chapter3  (0) 2023.02.15
DB 모델링 과정_chapter2  (0) 2023.02.15
데이터 베이스와 SQL_chapter1  (0) 2023.02.15