Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SQL_용어정리
- spring
- SQL
- vb.net
- JavaScript
- Spring_오류정리
- 다이어그램
- 아파치톰캣
- DML
- 인스턴스
- 이클립스
- json
- Git_정리
- git
- 자바스크립트
- CSS
- 인덱스
- java
- HTML
- jsp
- MySQL
- asp.net
- Linux
- Spring_에러정리
- Git_명령어정리
- 배열
- workbench
- 자바
- Linux_명령어정리
- github
Archives
- Today
- Total
데브마우스
[MySQL] 스토어드 프로시저 사용법 정리 본문
스토어드 프로시저란 무엇인가요?
MySQL의 스토어드 프로시저는 SQL에 프로그래밍 기능을 추가하여 일반 프로그래밍 언어와 같은 동작을 이끌어낼 수 있습니다.
스토어드 프로시저는 쿼리 문의 집합(단위 작업, 2개 이상의 SQL문)이라 할 수 있습니다.
스토어드 프로시저로 묶은 뒤 필요할 때마다 호출하면 편리하게 MySQL을 운영할 수 있습니다.
또한, 스토어드 프로시저도 데이터베이스의 개체 중 한가지입니다.
스토어드 프로시저를 익히는 제일 좋은 방법
스토어드 프로시저의 형식이 복잡해보일 수 있지만 일단 기본 형식을 먼저 익히시고, 그 뒤 추가로 완전한 형식을 학습하시면 됩니다.
스토어드 프로시저의 생성, 실행, 삭제 방법
스토어드 프로시저의 생성 코드 형식은 아래와 같습니다.
DELIMITER $$
CREATE PROCEDURE 스-프_이름(IN 또는 OUT 파라미터)
BEGIN
실행할 SQL문
END $$
DELIMITER ;
스토어드 프로시저의 실행 형식은 아래와 같습니다.
CALL 스-프_이름();
스토어드 프로시저의 삭제 형식은 아래와 같습니다.
DROP PROCEDURE 스-프_이름;
스토어드 프로시저의 입력과 출력 파라미터
스토어드 프로시저의 입력 파라미터를 지정하는 형식은 아래와 같습니다.
IN 입력_파라미터 데이터_타입;
스토어드 프로시저의 출력 파라미터를 지정하는 형식은 아래와 같습니다.
OUT 출력_파라미터 데이터_타입;
출력 파라미터가 있는 스토어드 프로시저의 실행 형식은 아래와 같습니다.
CALL 프로시저_이름(@변수_이름);
SELECT @변수_이름;
2개의 입력 파라미터가 있는 스토어드 프로시저 예제입니다.
-- 스토어드 프로시저 생성
DELIMITER $$
CREATE PROCEDURE proc_test(
IN userNumber INT,
IN userAge INT
)
BEGIN
SELECT * FROM member
WHERE mem_number > userNumber AND mem_age > userAge;
END $$
DELIMITER ;
CALL proc_test(5, 18); -- 스토어드 프로시저 실행
출력 파라미터를 활용하는 스토어드 프로시저입니다.
DELIMITER $$
CREATE PROCEDURE countNumTable(
IN txt CHAR(12),
OUT countNum INT)
BEGIN
INSERT INTO countTable VALUES(NULL, countNum);
SELECT MAX(id) INTO countNum FROM countNumTable;
END $$
DELIMITER ;
스토어드 프로시저를 활용한 동적 SQL
BEGIN과 END 사이에
BEGIN
SET @변수이름 = 대입할_값 혹은 함수; -- "변수 선언" 후 "변수 혹은 함수" 대입
PREPARE SQL_Query FROM @변수이름; -- 실행할 SQL문 작성
EXECUTE SQL_Query; -- SQL문 실행
DEALLOCATE PREPARE SQL_QUERY; -- SQL 연결 해제
으로 동적 SQL을 구성할 수 있습니다.
'데이터베이스 > SQL: 정리' 카테고리의 다른 글
[SQL] 트리거와 NEW와 OLD 테이블 정리 (0) | 2024.01.05 |
---|---|
[MySQL] 스토어드 함수와 커서 정리 (0) | 2024.01.05 |
[SQL] 인덱스의 사용 방법 정리 (0) | 2024.01.05 |
[SQL] 인덱스의 내부 작동 정리 (0) | 2024.01.05 |
[SQL] 인덱스의 개념 정리 (0) | 2024.01.05 |