본문 바로가기
데이터베이스

데이터베이스 10. 스토어드 함수

by MiaCoder 2024. 6. 12.

1. 스토어드 함수

스토어드 프로시저는 다양한 용도로 사용하는 반면 스토어드 함수는 하나의 값만 반환하는 계산에 주로 이용

 

delimiter $$

create function 스토어드함수이름(매게변수)

     returns 반환형식

begin

     프로그래밍 코딩

     return 반환값;

end$$

delimiter;

select 스토어드함수이름();

 

이런 구조와 형태를 가짐

본문 안에서 return으로 하나의 값을 반환

call이 아닌 select로 호출

본문 안에서 select를 사용하지 않음

결과를 반드시 반환하는 특성

returns, return 차이를 기억

 

2. 내장함수

내장함수는 빌트인 함수라고도 하며 MySQL안에 내장된 함수를 의미한다.

 

3. 스토어드 함수 예제

drop function if exists sumFunc;

delimiter $$

create function sumFund(num1 int, num2 int ) returns int

begin

     return num1 + num2;

end$$

delimiter;

select sumFund(100, 200) as 합계;

생성 시 매게변수 입력, 리턴 타입을 정의한다는 점이 다르다.

함수 생성 쪽에서 반환할 값을 정의한다는 부분도 다르다

 

delimiter$$

create function calcYearFunc(dyear int) returns int

begin

     declare runyear int;

     set runyear=year(curdate())-dyear;

     return runyear;

end$$

delimiter;

select calcYearFunc(2010) as 활동햇수;

 

3. 스토어드 함수의 사용

select mem_id, mem_name, debut_date, calcYearfunc(year(debut_date)) as 활동햇수

from member order by 활동햇수 desc;

이런 식으로 select한 후 그 값을 계산할 때 이용

 

4. 함수 반환환값 저장 후 사용

select calcYearfunc(2007) into @a;

select calcYearfunc(20015) into @b;

select @a - @b as 차이;

이렇게 @a, @b에 함수 결과를 저쟁했다가 사용 가능

 

5. 스토어드 함수 생성할 때 사용된 create문 보기

show creater function calcYearFunc;

 

6. 스토어드 함수 삭제

drop function clacYearFunc;