A stored function is a set of SQL statements stored in the database that performs a specific task and returns a single value.
Click to reveal answer
beginner
Which keyword is used to create a stored function in MySQL?
The CREATE FUNCTION keyword is used to define a stored function.
Click to reveal answer
beginner
What is the purpose of the RETURNS clause in a stored function?
The RETURNS clause specifies the data type of the value that the function will return.
Click to reveal answer
intermediate
Why do you need to use DETERMINISTIC or NOT DETERMINISTIC when creating a stored function?
It tells MySQL whether the function always returns the same result for the same input (DETERMINISTIC) or not, which helps with optimization and caching.
Click to reveal answer
beginner
How do you call a stored function in a SQL query?
You call it by using its name followed by parentheses with any required arguments, like a regular function: SELECT function_name(args);
Click to reveal answer
Which statement correctly creates a stored function that returns the square of a number?
ACREATE FUNCTION square(x INT) RETURNS VOID BEGIN RETURN x * x; END;
BCREATE PROCEDURE square(x INT) RETURNS INT BEGIN RETURN x * x; END;
CCREATE FUNCTION square(x INT) RETURNS INT RETURN x * x;
DCREATE FUNCTION square(x INT) RETURNS INT BEGIN RETURN x * x; END;
✗ Incorrect
Option D uses CREATE FUNCTION with RETURNS INT and a BEGIN...END block returning x * x, which is correct syntax.
What does the RETURNS clause specify in a stored function?
AThe data type of the returned value
BThe name of the function
CThe input parameters
DThe SQL statements inside the function
✗ Incorrect
RETURNS specifies the data type of the value the function will return.
Which keyword indicates that a stored function always returns the same result for the same inputs?
AIMMUTABLE
BNOT DETERMINISTIC
CDETERMINISTIC
DVOLATILE
✗ Incorrect
DETERMINISTIC means the function always returns the same result for the same inputs.
How do you execute a stored function named 'get_discount' with parameter 100?
AEXEC get_discount(100);
BSELECT get_discount(100);
CCALL get_discount(100);
DRUN get_discount(100);
✗ Incorrect
Stored functions are called using SELECT, e.g., SELECT get_discount(100);
Which of these is NOT allowed inside a stored function in MySQL?
AModifying database tables with INSERT or UPDATE
BCalling another stored function
CDeclaring variables
DUsing control flow statements like IF
✗ Incorrect
Stored functions cannot modify database tables; that is allowed in stored procedures only.
Explain the steps to create a stored function in MySQL that returns the length of a string.
Think about the function signature and the return statement.
You got /4 concepts.
Describe the difference between a stored function and a stored procedure in MySQL.
Focus on return values and how they are called.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of creating a stored function in MySQL?
easy
A. To save reusable code that returns a value
B. To create a temporary table
C. To delete data from a table
D. To backup the database
Solution
Step 1: Understand stored function purpose
Stored functions are designed to hold reusable code inside the database.
Step 2: Identify key feature
They must return a value using RETURN, which distinguishes them from procedures.
Final Answer:
To save reusable code that returns a value -> Option A
Quick Check:
Stored function = reusable code + return value [OK]
Hint: Stored functions always return a value [OK]
Common Mistakes:
Confusing stored functions with procedures
Thinking stored functions do not return values
Using stored functions to delete data
Assuming stored functions create tables
2. Which of the following is the correct way to start defining a stored function in MySQL?
easy
A. CREATE FUNCTION funcName RETURNS INT BEGIN ... END
B. CREATE PROCEDURE funcName() RETURNS INT BEGIN ... END
C. CREATE FUNCTION funcName() RETURNS INT BEGIN ... END
D. CREATE FUNCTION funcName() RETURNS INT { ... }
Solution
Step 1: Check syntax for stored function
MySQL stored functions start with CREATE FUNCTION, include parentheses for parameters, and specify RETURNS type.
Step 2: Identify correct syntax
CREATE FUNCTION funcName() RETURNS INT BEGIN ... END uses correct syntax with parentheses and RETURNS INT, followed by BEGIN ... END block.
Final Answer:
CREATE FUNCTION funcName() RETURNS INT BEGIN ... END -> Option C
Quick Check:
CREATE FUNCTION + RETURNS + BEGIN/END = correct syntax [OK]
Hint: Use parentheses and RETURNS keyword in function definition [OK]
Common Mistakes:
Using PROCEDURE instead of FUNCTION
Omitting parentheses after function name
Using curly braces instead of BEGIN/END
Missing RETURNS keyword
3. Given the following stored function, what will be the output of SELECT addFive(10);?
DELIMITER $$
CREATE FUNCTION addFive(num INT) RETURNS INT
BEGIN
RETURN num + 5;
END$$
DELIMITER ;
medium
A. 15
B. 5
C. 10
D. Syntax Error
Solution
Step 1: Understand function logic
The function addFive takes an integer input and returns the input plus 5.
Step 2: Calculate output for input 10
Input 10 plus 5 equals 15, so the function returns 15.
Final Answer:
15 -> Option A
Quick Check:
10 + 5 = 15 [OK]
Hint: Add input value to 5 as per function logic [OK]
Common Mistakes:
Confusing input and output values
Ignoring RETURN statement
Assuming syntax error due to DELIMITER
Forgetting to add 5
4. Identify the error in the following stored function definition:
DELIMITER $$
CREATE FUNCTION multiplyByTwo(num INT) RETURNS INT
BEGIN
SET result = num * 2;
RETURN result;
END$$
DELIMITER ;
medium
A. Function name is invalid
B. Incorrect use of DELIMITER
C. RETURN statement is missing
D. Missing variable declaration for 'result'
Solution
Step 1: Check variable usage inside function
The variable 'result' is used but not declared with DECLARE inside the function.
Step 2: Understand MySQL variable rules
Local variables must be declared before use; missing DECLARE causes error.
Final Answer:
Missing variable declaration for 'result' -> Option D
Quick Check:
Variables must be declared before use [OK]
Hint: Declare variables before using SET inside functions [OK]
Common Mistakes:
Not declaring variables before SET
Misusing DELIMITER keyword
Forgetting RETURN statement
Using invalid function names
5. You want to create a stored function isEven that returns 1 if a number is even and 0 if odd. Which of the following is the correct complete function definition?
hard
A. DELIMITER $$
CREATE FUNCTION isEven(num INT) RETURNS INT
BEGIN
RETURN num / 2;
END$$
DELIMITER ;
B. DELIMITER $$
CREATE FUNCTION isEven(num INT) RETURNS INT
BEGIN
IF num % 2 = 0 THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END$$
DELIMITER ;
C. DELIMITER $$
CREATE FUNCTION isEven(num INT) RETURNS INT
BEGIN
RETURN num % 2;
END$$
DELIMITER ;
D. DELIMITER $$
CREATE FUNCTION isEven(num INT) RETURNS INT
BEGIN
IF num / 2 = 0 THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END$$
DELIMITER ;
Solution
Step 1: Check logic for even number
Even numbers have zero remainder when divided by 2, so use num % 2 = 0.
Step 2: Verify correct syntax and return values
Uses IF with correct condition num % 2 = 0 and returns 1 or 0 accordingly, with proper BEGIN/END block, END IF, and DELIMITER.
Final Answer:
DELIMITER $$
CREATE FUNCTION isEven(num INT) RETURNS INT
BEGIN
IF num % 2 = 0 THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END$$
DELIMITER ; -> Option B
Quick Check:
Use modulo operator and IF for even check [OK]
Hint: Use IF and modulo (%) to check even numbers [OK]
Common Mistakes:
Using division instead of modulo for condition
Returning wrong data types
Omitting END IF statement
Returning num % 2 without comparing to 0
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.