MySQL 저장함수.
MySQL 저장 함수란 무엇인가?
저장 함수는 저장 프로시저와 거의 흡사합니다. 저장 프로시저와 유일하게 다른 점은 실행 했을 때 값을 반환한다는 점입니다.
저장 함수를 사용하면 자신만의 함수를 만들 수가 있습니다. 저장 함수는 사용자 정의 함수라고도 합니다.
다음은 저장 함수를 작성하는 구문입니다.
create function 저장함수이름(인수명 자료형) returns 반환값의 자료형
begin
sql 문;
Return 반환값식;
end
저장 프로시저와 마찬가지로 괄호안에 인수를 대입할 수 있습니다. 인수를 대입하지 않아도 괄호는 입력해야 합니다.
저장 함수로 표준 체중 계산하기.
BMI(Body Mass Index) = 22가 표준 체중이라고 했을 때 다음과 같은 식이 성립합니다.
표준 체중 = 신장(cm 단위) * 신장(cm 단위) * 22/10000
이 식을 이용해서 저장 함수 function_01( )을 만들어 보겠습니다.
delimiter //
create function function_01(height int) returns double
begin
return height * height * 22/10000;
end
//
delimiter ;
select function_01(173);
위와 같이 저장 함수를 호출할 때는 call 이 아니라 select 를 사용합니다.
레코드의 평균값을 반환하는 저장 함수.
특정 테이블에서 특정 컬럼의 평균값을 반환하는 함수를 저장 함수로 만들어 보겠습니다.
이런 함수는 미리 만들어 두면 꽤 편리하게 사용할 수 있습니다.
table_member에서 컬럼 age의 평균을 반환하는 저장 함수 function_avgAge를 생성해 보겠습니다.
delimiter //
create function function_avgAge( ) returns double
begin
declare a double;
select avg(age) into a from table_member;
return a;
end
//
delimiter ;
select function_avgAge( );
위에 declare a double 은 변수 a를 double형으로 선언한 것이고 avg(age) into a 는 평균을 구한 값을 a에 할당한다는 의미 입니다.
저장 함수의 내용 표시하기.
저장 함수의 내용을 표시하는 명령어는 다음과 같습니다.
Show create function 저장함수명;
show create function function_avgAge;
저장 함수 삭제하기.
저장 함수를 삭제하는 방법은 다음 명령어를 사용합니다.
drop function 저장함수명;
drop function function_avgAge;
'MySQL' 카테고리의 다른 글
MySQL 저장엔진. (0) | 2017.12.29 |
---|---|
MySQL 트리거(trigger). (0) | 2017.12.28 |
MySQL 저장 프로시저 활용하기. (0) | 2017.12.18 |
MySQL 뷰 이용하기. (0) | 2017.12.13 |
MySQL SELECT한 레코드에서 또 SELECT하기 – 하위 질의 (0) | 2017.12.11 |