다음 예제 함수는 매개 변수를 사용하고 SQL 함수를 사용하여 작업을 수행하고 결과를 반환합니다. 결정적이지 않음: 입력 매개 변수 집합이 주어지면 함수가 다른 결과를 반환할 수 있음을 의미합니다. 결과는 테이블 데이터, 난수 또는 서버 변수의 영향을 받을 수 있습니다. 이것은 집계 저장된 함수의 예일 뿐입니다. 정수 값에 대한 기하학적 평균과 같은 매우 구체적인 경우입니다. 그러나 소수점 값에 대해 비슷한 함수를 가질 수 있습니다. 그리고 평균의 몇 가지 다른 유형이 있습니다. 그리고 그들 각각에 대해 표준 편차 또는 분산을 계산할 수 있습니다. CREATE FUNCTION 문을 사용하여 저장된 새 함수를 만듭니다. CREATE 함수를 사용하려면 CREATE ROUTINE 데이터베이스 권한이 있어야 합니다. 함수는 임의의 수의 인수를 취하고 함수 본문에서 값을 반환합니다. 함수 본문에는 선택한 식에서 사용하는 것처럼 유효한 SQL 식일 수 있습니다. 적절한 권한이 있는 경우 기본 제공 함수와 똑같이 함수를 호출할 수 있습니다.

권한에 대한 자세한 내용은 아래 보안을 참조하십시오. 함수를 호출하려면 함수에 EXECUTE 권한이 있어야 합니다. MariaDB는 DEFINER 절이 사용된 경우에도 CREATE FUNCTION이라고 하는 계정에 EXECUTE 및 ALTER ROUTINE 권한을 자동으로 부여합니다. 그러나 집계 저장된 함수는 구조화 된 값을 구성 할 수도 있습니다. funcion GROUP_CONCAT()는 예를 들어 목록을 만드는 데 적합합니다. 그리고 MySQL에는 JSON_ARRAYAGG() 및 JSON_OBJECTAGG() 함수가 있습니다. 아래 주어진 MariaDB에서 몇 가지 중요한 숫자 함수입니다 – 우리는 기능 이름 “CalcValue”를 만들었습니다. 이제 함수를 삭제합니다.

저장 프로시저와 는 달리 식이 사용되는 모든 위치에서 SQL 문에 저장된 함수를 사용할 수 있습니다. 이렇게 하면 절차 코드의 가독성및 유지 관리 기능을 향상시킬 수 있습니다. 함수에 대한 기존 권한이 삭제되지 않는다는 점을 제외하면 이 함수는 소수점으로 정의되는 인수, 가격을 취하고 INT. LANGUAGE SQL: 이식성에 대한 구문에 있지만 함수에 영향을 미치지 않습니다. SQL DATA를 수정하면 함수에 데이터베이스에 저장된 데이터를 수정할 수 있는 명령문이 포함되어 있음을 의미합니다. 이 함수에 DELETE, 업데이트, INSERT, 바꾸기 또는 DDL과 같은 명령문이 포함되어 있는 경우 발생합니다. DEFINER 절: 선택적 절입니다. 지정하지 않으면 정의자가 함수를 만든 사용자입니다. 다른 정의자를 지정하려면 user_name이 함수의 정의자인 DEFINER 절을 포함해야 합니다. return_datatype: 함수의 반환 값의 데이터 형식을 지정합니다. 먼저 CREATE FUNCTION 절 다음의 저장된 함수 이름을 지정합니다. 저장된 함수를 알고 있는 경우 의미 체계가 너무 모호해서는 안 됩니다.

SQL SECURITY는 기본적으로 정의자를 사용하므로 사용자 roger가 이 함수를 호출할 때마다 하위 선택은 권한으로 실행됩니다. 각 직원의 급여를 선택할 수 있는 권한이 있는 한, 함수의 호출자는 개별 급여를 볼 수 없는 경우 각 부서의 최대 급여를 받을 수 있습니다. 문자 집합 및 데이터 정렬이 문에 특별히 설정되지 않은 경우 생성 시 데이터베이스 기본값이 사용됩니다. 데이터베이스 기본값이 이후 단계에서 변경되면 저장된 함수 문자 집합/데이터 정렬이 동시에 변경되지 않습니다. 저장된 함수를 삭제하고 다시 만들어 데이터베이스가 사용되는 것과 동일한 문자 집합/데이터 정렬을 보장해야 합니다.