Skip to main content

Creating Functions

Introduction

In MySQL, a function is a stored program that you can pass parameters into and then return a value. Functions are very useful when you need to perform the same task again and again, you can just create a function and call it when necessary. This tutorial will guide you through the process of creating functions in MySQL.

Understanding MySQL Functions

Before we dive into creating functions, it's important to understand what a function is and how it works. In MySQL, a function is a stored routine that encapsulates code for a particular task. It's like a mini-program within your database.

A function has a name, a return type, and optionally a list of parameters. The body of a function is made up of a SQL statement.

Most importantly, a function always returns a value. This is different from a procedure, which does not.

Syntax for Creating Functions

The basic syntax for creating a function in MySQL is as follows:

CREATE FUNCTION function_name ([parameter1 [type1], ...])
RETURNS return_datatype
[LANGUAGE SQL]
[DETERMINISTIC | NOT DETERMINISTIC]
BEGIN
function_body
END;

Here's what each part of this syntax means:

  • CREATE FUNCTION function_name: This is the name of the function. It should be unique within the database.

  • [parameter1 [type1], ...]: These are the parameters that you pass into the function. Each parameter has a name and a type.

  • RETURNS return_datatype: This is the datatype of the value that the function will return.

  • [LANGUAGE SQL]: This specifies that the function is written in SQL.

  • [DETERMINISTIC | NOT DETERMINISTIC]: This optional keyword determines whether the function always returns the same result for the same input.

  • BEGIN...END;: This is where you write the SQL statements that make up the body of the function.

Example of Creating a Function

Let's create a simple function that adds two numbers together. Here's how you could do it:

CREATE FUNCTION add_numbers (num1 INT, num2 INT)
RETURNS INT
DETERMINISTIC
BEGIN
RETURN num1 + num2;
END;

In this example, add_numbers is the name of the function, num1 and num2 are parameters, and INT is the return type. The function body consists of a single SQL statement that adds the two parameters together and returns the result.

Calling a Function

To call a function, you use the function name followed by the list of parameters in parentheses. Here's how you would call the add_numbers function:

SELECT add_numbers(5, 3);

This will return 8, which is the sum of 5 and 3.

Conclusion

Functions in MySQL are a powerful tool that allow you to encapsulate code for a specific task. You can create your own functions using the CREATE FUNCTION statement, and then call these functions using their name. Remember that a function always returns a value, and that you specify the return type when you create the function. Happy coding!