DBSM에서 제공되는 공통적 함수 이외에 사용자가 직접 정의하고 작성
SQL을 활용하여 일련의 로직을 수행하고, 수행 결과를 단일값으로 반환할 수 있는 모듈
select password, sf_password(password) as password mask
from member;
create function sf_password(password varchar(255))
return varchar(255)
begin
return
case
when length(password) > 2 then concat(substring(password, 1, 2), '**')
else
'****'
end;
end;

drop function sf_password;
여러개의 SQL문을 같이 실행(비즈니스 업무 로직을 수행)
함수는 리턴값을 가지고있지만, 프로시저는 리턴값 없이 실행되는문
//호출 방법
call sp_select_member();
//프로시저 생성
create procedure sp_select_member()
begin
select * from memebr;
end;
//삭제 방법
drop procedure sp_select_member();

프로시저, 평선과 다르게 한 번 설정을 하면 동작을 항상 감지하고 있다가 조건에 해당하는 동작이 수행되는 순간 실행되는 특징
//트리거 생성
create trigger tg_member_mobile_no_history
//테이블에 업데이트 동작이 실행되면
befor update on member_detail
for each row
begin
//변경 전 값들을 history 테이블에 저장
insert into member_detail_history(
member_type, user_id, mobile_no, update_date)
values (old.member_type, old.user_id, old.mobile_no, now()
);
end;
//UPDATE
update member_detail set mobile_no = '01055555555'
where member_type = 'email' and user_id = 'test@naver.com'
