Hàm được lưu trữ trong MySQL về cơ bản là một loại chương trình được lưu trữ đặc biệt trả về một giá trị duy nhất. Chúng ta có thể sử dụng các hàm được lưu trữ trong MySQL để đóng gói chủ yếu các công thức đơn giản hoặc các quy tắc nghiệp vụ có thể sử dụng lại giữa các câu lệnh SQL hoặc các chương trình được lưu trữ. Khác với các hàm được lưu trữ đó được sử dụng trong các câu lệnh SQL bất cứ khi nào một biểu thức được sử dụng.
Tính năng này của các hàm được lưu trữ khác với các thủ tục được lưu trữ. Trên thực tế, một tham số hàm được lưu trữ tương đương với tham số IN của thủ tục được lưu trữ vì các hàm sử dụng từ khóa RETURN để xác định những gì được trả lại. Cú pháp của nó có thể như sau -
Cú pháp
CREATE [DEFINER = { user | CURRENT_USER }] FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic ...] routine_body func_parameter: param_name type type: Any valid MySQL data type characteristic: COMMENT 'string' | LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } routine_body: Valid SQL routine statement
Các hàm chỉ có các tham số đầu vào và trả về một giá trị, vì vậy phải có mệnh đề RETURNS trong định nghĩa hàm để chỉ ra kiểu dữ liệu của giá trị trả về. Ngoài ra, phải có ít nhất một câu lệnh RETURN trong thân hàm để trả về giá trị cho trình gọi.