MariaDB
[MariaDB] 마리아DB 스토어드 프로그램 - 스토어드 함수 Stored Function (MySQL)
reddb
2020. 10. 13. 19:30
반응형
[MariaDB] 마리아DB 스토어드 프로그램 - 스토어드 함수 Stored Function (MySQL)
스토어드 프로그램 종류는 4가지 입니다.
- 스토어드 프로시저 Stored Procedure
- 스토어드 함수 Stored Function
- 커서 Cursor
- 트리거 Trigger
이번 포스팅에서는 2번째인 스토어드 함수(Stored Function)에 대해 설명하겠습니다.
MariaDB에서는 다양한 내장함수를 제공합니다. 자세한 내용은 아래 포스팅에서 확인 가능합니다.
[MariaDB] 마리아DB SQL 쿼리 고급 - 내장 함수 (MySQL)
[MariaDB] 마리아DB SQL 쿼리 고급 - 내장 함수 (MySQL) 제어 흐름 함수 IF(수식, 참, 거짓) /* 수식이 참이면 2번째 값 출력, 수식이 거짓이면 3번째 값 출력 */ SELECT IF (100>200, '참이다', '거짓이다'); --..
reddb.tistory.com
그러나, MariaDB가 사용자가 원하는 모든 함수를 제공하지는 않습니다. 사용자마다 자기가 원하는 함수가 있을 수 있고 그런 함수는 직접 함수를 만들어서 사용 해야 합니다.
이렇게 사용자가 직접 만들어 쓰는 함수를 스토어드 함수(Stored Function)이라고 합니다.
스토어드 함수의 사용 예제
-- 스토어드 함수 예제
USE sqlDB; -- sqlDB 사용 선언
DROP FUNCTION IF EXISTS userFunc; -- suerFunc 함수가 존재하면 삭제
DELIMITER $$ -- 스토어드 프로그램 시작 선언
CREATE FUNCTION userFunc(value1 INT, value2 INT) -- userFunc 함수를 생성. INT형 value1,2를 매개변수로 받음
RETURNS INT -- INT형을 반환 하기로 선언 (스토어드 함수는 RETURNS문으로 반환할 데이터 형식을 선언함)
BEGIN -- 코드시작
RETURN value1 + value2; --RETURN문으로 하나의 값을 반환함. 매개변수(파라미터) value1,2를 더하여 반환
END $$ -- 코드 끝
DELIMITER ; -- 스토어드 프로그램 끝
SELECT userFunc(100, 200); -- 전달인자(아귀먼트) 100,200으로 userFunc 함수 호출
출생년도를 입력하면 나이가 출력되는 함수 예제
USE sqlDB;
DROP FUNCTION IF EXISTS getAgeFunc;
DELIMITER $$
CREATE FUNCTION getAgeFunc(bYear INT) -- getAgreFunc 함수 생성. bYear 매개변수 INT형
RETURNS INT -- 리턴 데이터 형식 INT형
BEGIN
DECLARE age INT; -- 변수 age INT형 선언
SET age = YEAR(CURDATE()) - bYear; -- 변수 age에 지금년도에서 bYear 매개변수를 뺀 후 입력(나이계산)
RETURN age; -- age 값을 반환
END $$
DELIMITER ;
SELECT getAgeFunc(1979); -- 1979값을 전달인자(아귀먼트)로 getAgeFunc 함수를 호출하여 나이를 계산
SELECT getAgeFunc(1979) INTO @age1979; -- 1979값으로 함수를 호출하여 리턴받은 나이를 변수 @age1979에 입력(저장)
SELECT getAgeFunc(1997) INTO @age1997; -- 1997값으로 함수를 호출하여 리턴받은 나이를 변수 @age1997에 입력(저장)
SELECT CONCAT('1997년과 1979년의 나이차 ==> ', (@age1979-@age1997)); -- 두변수의 차를 계산하여 CONCAT 출력
SELECT userID, name, getAgeFunc(birthYear) AS '만 나이' FROM userTBL; -- 테이블 조회시 생년이 아닌 나이로 계산하여(함수이용) 출력
스토어드 함수 내용 확인
SHOW CREATE FUNCTION 함수명;
스토어드 함수 삭제
DROP FUNCTION 함수명;
'MariaDB' 카테고리의 글 목록
전산 관련 경험을 기록 하는 곳
reddb.tistory.com
반응형