MySQL Stored Function คือ Stored Program พิเศษชนิดหนึ่งที่คืนค่าค่าเดียว เราสามารถใช้ Stored Functions ใน MySQL เพื่อ Encapsulate สูตรง่ายๆ หรือ Business Rules ที่สามารถนำกลับมาใช้ซ้ำได้ใน SQL Statements หรือ Stored Programs อื่นๆ นอกจากนี้ Stored Functions ถูกใช้ใน SQL Statements ทุกครั้งที่มีการใช้ Expression
คุณสมบัตินี้ของ Stored Functions แตกต่างจาก Stored Procedures จริงๆ แล้ว พารามิเตอร์ของ Stored Function เทียบเท่ากับพารามิเตอร์ IN ของ Stored Procedure เนื่องจาก Function ใช้คีย์เวิร์ด RETURN เพื่อกำหนดว่าสิ่ง gìจะถูกส่งคืน ไวยากรณ์สามารถเป็นดังนี้:
ไวยากรณ์
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
Functions มีเฉพาะ Input Parameters และคืนค่า ดังนั้นต้องมี Clause RETURNS ในการกำหนด Function เพื่อระบุชนิดข้อมูลของค่าคืน ยังต้องมีคำสั่ง RETURN อย่างน้อยหนึ่งคำสั่งภายใน Body ของ Function เพื่อคืนค่าให้ Caller