Syntax:
CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}
    SONAME shared_library_name

A user-defined function (UDF) is a way to extend MySQL with a new
function that works like a native (built-in) MySQL function such as
ABS() or CONCAT().

function_name is the name that should be used in SQL statements to
invoke the function. The RETURNS clause indicates the type of the
function's return value. As of MySQL 5.0.3, DECIMAL is a legal value
after RETURNS, but currently DECIMAL functions return string values and
should be written like STRING functions.

shared_library_name is the basename of the shared object file that
contains the code that implements the function. The file must be
located in a directory that is searched by your system's dynamic
linker.

To create a function, you must have the INSERT and privilege for the
mysql database. This is necessary because CREATE FUNCTION adds a row to
the mysql.func system table that records the function's name, type, and
shared library name. If you do not have this table, you should run the
mysql_upgrade command to create it. See
http://dev.mysql.com/doc/refman/5.0/en/mysql-upgrade.html.

URL: http://dev.mysql.com/doc/refman/5.0/en/create-function.html

