Stored Function : 펑션에 값을 주면 로직에따린 결과를 리턴해주는것
CREATE FUNCTION <function-name>(<argument-name> <argument -type>)
RETURNS <argument-Type>
BEGIN
RETURN <return-data>
END
view는 v_ trigger 는 tr , function은 f_로 이름을 많이 시작한다.
return은 괄호를 써서 리턴을해야한다. (우선순위를 주는것)
procedure는 stored procedure라고 관례적으로 sp_를 이름에 많이 준다.
DROP Procedure IF EXISTS sp_;
DELIMITER $$
CREATE Procedure <procedure-name>([IN | OUT | INOUT] <param> <type>, ...)
BEGIN
...
...
END $$
DELIMITER ;
- in : 입력받는 파라미터 (무조건 써야함)
- out : 내가 내보낼 파라미터
SELECT 선택할 컬럼 into out할 변수 를 해야 out을 할 수 있다.
procedure는 out을 잘 쓰지 않는다. 리턴을 처리해야 하는것은 function에서 주로 하고 procedure는 프로그램을 실행하는데 의미가 있다.
Procedure를 쓰는이유
1) 보안
2) 성능(프로시져가 컴파일되어서 메모리에 등록이 되니까 컴파일 할 필요가 없어서 빠르다)
3) 유지보수 (깃에 올려서 관리해야한다)
4) Modulization
5) Procedural Batch job (절차적인 배치잡을 할 때 편하다. 예를들어서 실시간이 아닌 지난 통계 등등)
Variables
declare <변수이름> <type> [default] 로 변수를 선언할 수 있다.
set <var name-> = <value>;
SELECT <col> INTO <var-name> from ...
이외에도 IF, Case, 등이 있다..
'SeSac (2021-08 ~ 2021-12) > MySQL' 카테고리의 다른 글
MySQL 13 (마지막) - Backup & Restore (0) | 2021.08.31 |
---|---|
MySQL 11 - Cursor를 이용한 프로시저 작성 (0) | 2021.08.30 |
MySQL 09 - 뷰와 트리거 (View, Trigger, UNION, @rownum) (0) | 2021.08.27 |
MySQL 07 - 내장함수와 트랜잭션(Transaction) (0) | 2021.08.27 |
MySQL 06 - Join Tables 테이블 조인하기 (0) | 2021.08.27 |