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개만 사용해도 되지만 명확하게 표시하기 위해 2개를 사용한다. ##, %%, &&, //등으로 바꿔도 된다.
- 스토어드 프로시저의 이름을 정해 준다.
1-1-3 호출방식
CALL 스토어드_프로시저_이름();
1-2. 스토어드 프로시저의 생성
DELIMITER $$
CREATE PROCEDURE user_proc() -- 1
BEGIN
SELECT * FROM member; -- 2
END $$
DELIMITER ;
CALL user_proc(); -- 3
- 스토어드 프로시저를 만드는 구문이다. 이름은 user_proc로 지정했다.
- 스토어드 프로시저의 내용이다.
- 생성한 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
- '에이핑크;를 입력 매개변수로 전달
- userName 매개변수에 대입
- '에이핑크'에 대한 조회를 수행
'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 |