Stored Program이란?
- MySQL5 버전부터 지원
- ANSI SQL 2003을 기준으로 채택(블럭구조기반)
- 3가지 타입
Stored procedure : 가장 일반적인 타임
Stored functions : 프로시져와 비슷하지만 단일값만 return
Triggers : 데이터베이스 activity발생시 반응되는 action정의
Stored Program 사용이유
- 데이터베이스 보안 강화
- 코드의 유지보수를 더욱 쉽게
- 네트웍 트래픽 감소
- 어플리케이션의 이동성을 강화
Procedure의 기초
- 기본 샘플
DELIMITER $$
DROP PROCEDURE IF EXISTS HellloWorld$$
CREATE PROCEDURE HelloWorld()
BEGIN
SELECT 'Hello World';
END$$
DELIMITER ;
- 변수
BEGIN
DECLARE my_integer INT;
DECLARE my_dob DATE DEFAULT '1960-06-21'
SET my_integer=20;
END;
- 파라미터의 모드
DELIMITER $$
CREATE PROCEDURE my_sqrt(input_number INT, OUT out_number FLOAT)
BEGIN
SET out_number=SQRT(input_number);
END$$
DELIMITER ;
IN - 프로시저의 기본모드, 값을 전달받음
OUT - 값을 할당할 수 있고 호출할 프로그램에 반환
INOUT - 값을 전달할 수 있고 변경된 값 역시 확인 가능
- 조건절(IF, CASE)
IF(price>500) THEN
SET discount=10
ELSEIF (price>100) THEN
SET discount=5
ELSE
SET discount=3
END IF
- LOOP의 사용(WHILE/END WHILE, REPEAT/UNTIL절 가능)
my_simple_loop : LOOP
SET counter = counter+1;
END LOOP my_simple_loop;
- SELECT INTO(변수에 값을 SELECT로 넣을 경우 사용)
DECLARE total NUMERIC(8,2);
SELECT SUM(sale) INTO total
FROM sales
- Store Function : IN파라미터만 사용가능, OUT, INOUT는 사용 불가, SQL내에서도 호출 가능
- Trigger : DML문에 의하여 테이블이 변경되었을때만 실행됨
출처 : http://javapia.tistory.com/1
'Lecture > Mysql' 카테고리의 다른 글
[스크랩] mysql stored procedure (2) | 2014.02.04 |
---|---|
[스크랩] “ MySQL 쓰면서 하지 말아야 할 것 17가지 ” (0) | 2014.02.03 |
mysql 테이블복사 (0) | 2014.01.29 |
mysql 외부접속 허용하기 (0) | 2014.01.29 |
mysql 복구&백업 (0) | 2014.01.29 |