✍️ Study Note
스토어드 함수
- 사용자가 직접 만들어서 사용하는 함수
스토어드 프로시저와의 차이점
- 스토어드 프로시저는 IN, OUT 구분이 있지만, 스토어드 함수는 IN (입력 파라미터)만 있다
- 스토어드 함수는 RETURN 문을 통해 하나의 값만 반환한다
- 스토어드 프로시저는 CALL로 호출되지만, 스토어드 함수는 SELECT 문장에서 호출된다.
- 스토어드 함수는 SELECT를 사용할 수 없다.
스토어드 함수 생성
1. 스토어드 함수 생성권한 허용
SET GLOBAL LOG_BIN_TRUST_FUNCTION_CREATORS =1;
2. 스토어드 함수 예시 #1
DELIMITER $$
CREATE FUNCTION USERFUNC(VALUE1 INT, VALUE2 INT) -- 입력변수 설정
RETURNS INT -- 출력값 형식 설정
BEGIN
RETURN VALUE1 + VALUE2; -- 출력값 수식 설정
END $$
DELIMITER ;
SELECT USERFUNC(100,200);
3. 스토어드 함수 예시 #2
DELIMITER $$
CREATE FUNCTION GETAGEFUNC(BYEAR INT)
RETURNS INT
BEGIN
DECLARE AGE INT;
SET AGE = YEAR(CURDATE()) - BYEAR;
RETURN AGE;
END $$
DELIMITER ;
SELECT GETAGEFUNC(1994);
SELECT IGETAGEFUNC(1994) INTO @AGE1994;
SELECT IGETAGEFUNC(1996) INTO @AGE1996;
SELECT CONCAT('1994년과 1006년의 나이차 ==>', (@AGE1994 - @AGE1996));
스토어드 함수 조회, 삭제
SHOW CREATE FUNCTION GETAGEFUNC;
DROP FUNCTION GETAGEFUNC;
'코딩공부' 카테고리의 다른 글
[SQL] 데이터 분석을 위한 SQL 레시피 : 1~2장 (0) | 2021.11.13 |
---|---|
[SQL] MYSQL 스토어드 프로시저 - 커서 (0) | 2021.11.08 |
[SQL] MYSQL 스토어드 프로시저 (0) | 2021.11.07 |
[SQL] MySQL 트리거 (0) | 2021.11.06 |
[SQL] MySQL 테이블 압축, 임시테이블 (0) | 2021.10.23 |