A stored procedure is a set of SQL statements saved in the database that can be executed repeatedly. It helps to organize and reuse code.
Click to reveal answer
beginner
How do you start creating a stored procedure in MySQL?
You use the CREATE PROCEDURE statement followed by the procedure name and parentheses for parameters.
Click to reveal answer
beginner
What keyword do you use to end a stored procedure block in MySQL?
You use END to mark the end of the stored procedure's code block.
Click to reveal answer
intermediate
Why do you need to change the delimiter when creating stored procedures in MySQL?
Because the procedure contains multiple SQL statements separated by semicolons, changing the delimiter temporarily helps MySQL understand where the procedure ends.
Click to reveal answer
beginner
How do you call a stored procedure after creating it?
You use the CALL statement followed by the procedure name and any required parameters.
Click to reveal answer
Which statement is used to create a stored procedure in MySQL?
ACREATE PROCEDURE
BCREATE FUNCTION
CCREATE TRIGGER
DCREATE VIEW
✗ Incorrect
The correct statement to create a stored procedure is CREATE PROCEDURE.
What is the purpose of changing the delimiter when creating stored procedures?
ATo speed up the procedure execution
BTo allow semicolons inside the procedure without ending it
CTo encrypt the procedure code
DTo create a backup of the procedure
✗ Incorrect
Changing the delimiter allows semicolons inside the procedure without confusing MySQL about where the procedure ends.
How do you execute a stored procedure named 'GetUsers'?
ASTART PROCEDURE GetUsers
BEXECUTE GetUsers
CRUN GetUsers
DCALL GetUsers()
✗ Incorrect
You execute a stored procedure using the CALL statement followed by the procedure name and parentheses.
Which keyword marks the end of a stored procedure's code block?
AEND
BFINISH
CSTOP
DEXIT
✗ Incorrect
The END keyword marks the end of the stored procedure's code block.
Can stored procedures accept input parameters?
AOnly output parameters are allowed
BNo, they cannot accept any parameters
CYes, they can accept input parameters
DParameters are optional but not supported
✗ Incorrect
Stored procedures can accept input parameters to customize their behavior.
Explain the steps to create a stored procedure in MySQL.
Think about how to tell MySQL where the procedure starts and ends.
You got /5 concepts.
Describe why stored procedures are useful in databases.
Consider how stored procedures help programmers and database users.
You got /5 concepts.
Practice
(1/5)
1. What is the main purpose of a stored procedure in MySQL?
easy
A. To create a new database
B. To save a set of SQL commands for reuse later
C. To delete tables automatically
D. To backup the entire database
Solution
Step 1: Understand stored procedure concept
A stored procedure is a saved set of SQL commands that can be run multiple times without rewriting.
Step 2: Compare options with definition
Only To save a set of SQL commands for reuse later correctly describes this purpose; others describe unrelated tasks.
Final Answer:
To save a set of SQL commands for reuse later -> Option B
Quick Check:
Stored procedure = saved SQL commands [OK]
Hint: Stored procedures store SQL commands to run later [OK]
Common Mistakes:
Confusing stored procedures with database creation
Thinking stored procedures delete tables
Assuming stored procedures backup data
2. Which of the following is the correct syntax to create a stored procedure named GetUsers without parameters?
easy
A. CREATE PROCEDURE GetUsers() { SELECT * FROM users; }
B. CREATE PROCEDURE GetUsers BEGIN SELECT * FROM users; END;
C. CREATE PROCEDURE GetUsers() SELECT * FROM users;
D. CREATE PROCEDURE GetUsers() BEGIN SELECT * FROM users; END;
Solution
Step 1: Recall correct stored procedure syntax
MySQL requires parentheses for parameters (empty if none), BEGIN and END to mark procedure body.
Step 2: Check each option
CREATE PROCEDURE GetUsers() BEGIN SELECT * FROM users; END; uses parentheses and BEGIN...END correctly. Others miss parentheses, BEGIN/END, or use wrong braces.
Final Answer:
CREATE PROCEDURE GetUsers() BEGIN SELECT * FROM users; END; -> Option D
Quick Check:
Syntax needs () and BEGIN...END [OK]
Hint: Use () even if no parameters, and BEGIN...END block [OK]
Common Mistakes:
Omitting parentheses after procedure name
Missing BEGIN and END keywords
Using curly braces instead of BEGIN...END
3. Given the stored procedure:
CREATE PROCEDURE AddNumbers(IN a INT, IN b INT, OUT sum INT)
BEGIN
SET sum = a + b;
END;
What will be the value of sum after calling CALL AddNumbers(3, 5, @result); SELECT @result;?
medium
A. 8
B. 35
C. NULL
D. Syntax error
Solution
Step 1: Understand procedure parameters and call
The procedure takes two input integers a and b, and outputs their sum into the OUT parameter sum.
Step 2: Analyze the call and output
Calling with 3 and 5 sets sum = 3 + 5 = 8. The OUT parameter is stored in @result, so SELECT @result returns 8.
Final Answer:
8 -> Option A
Quick Check:
3 + 5 = 8 [OK]
Hint: OUT parameters store results in user variables like @result [OK]
Common Mistakes:
Confusing concatenation with addition
Expecting sum to be NULL before assignment
Forgetting to use user variable for OUT parameter
4. Identify the error in this stored procedure:
CREATE PROCEDURE GetCount()
BEGIN
SELECT COUNT(*) FROM users
END;
medium
A. Missing semicolon after SELECT statement
B. Procedure name cannot have parentheses
C. BEGIN and END keywords are not allowed
D. COUNT(*) is invalid syntax
Solution
Step 1: Check syntax inside procedure body
Each statement inside BEGIN...END must end with a semicolon in MySQL.
Step 2: Identify missing semicolon
The SELECT COUNT(*) FROM users statement lacks a semicolon before END; causing syntax error.
Final Answer:
Missing semicolon after SELECT statement -> Option A
Quick Check:
Statements inside BEGIN...END need semicolons [OK]
Hint: End each statement with semicolon inside BEGIN...END [OK]
Common Mistakes:
Omitting semicolon after SQL statements
Thinking parentheses are not allowed in procedure name
Believing COUNT(*) is invalid
5. You want to create a stored procedure UpdateSalary that increases an employee's salary by a given percentage. Which of the following is the correct way to write it?
hard
A. CREATE PROCEDURE UpdateSalary(IN empId INT, IN pct INT) UPDATE employees SET salary = salary * pct WHERE id = empId;
B. CREATE PROCEDURE UpdateSalary(empId INT, pct DECIMAL(5,2)) BEGIN UPDATE employees SET salary = salary + pct WHERE id = empId; END;
C. CREATE PROCEDURE UpdateSalary(IN empId INT, IN pct DECIMAL(5,2)) BEGIN UPDATE employees SET salary = salary * (1 + pct/100) WHERE id = empId; END;
D. CREATE PROCEDURE UpdateSalary(IN empId INT, IN pct DECIMAL(5,2)) BEGIN UPDATE employees SET salary = salary + pct WHERE id = empId END
Solution
Step 1: Check parameter declarations and body structure
CREATE PROCEDURE UpdateSalary(IN empId INT, IN pct DECIMAL(5,2)) BEGIN UPDATE employees SET salary = salary * (1 + pct/100) WHERE id = empId; END; correctly declares input parameters with IN and uses BEGIN...END block.
Step 2: Verify salary update logic and syntax
CREATE PROCEDURE UpdateSalary(IN empId INT, IN pct DECIMAL(5,2)) BEGIN UPDATE employees SET salary = salary * (1 + pct/100) WHERE id = empId; END; updates salary by multiplying with (1 + pct/100), which correctly increases salary by percentage. It also ends statements with semicolon.
Step 3: Identify errors in other options
CREATE PROCEDURE UpdateSalary(empId INT, pct DECIMAL(5,2)) BEGIN UPDATE employees SET salary = salary + pct WHERE id = empId; END; lacks IN keywords and adds pct directly (not percentage). CREATE PROCEDURE UpdateSalary(IN empId INT, IN pct INT) UPDATE employees SET salary = salary * pct WHERE id = empId; misses BEGIN...END and uses wrong pct type. CREATE PROCEDURE UpdateSalary(IN empId INT, IN pct DECIMAL(5,2)) BEGIN UPDATE employees SET salary = salary + pct WHERE id = empId END misses semicolon before END.
Final Answer:
CREATE PROCEDURE UpdateSalary(IN empId INT, IN pct DECIMAL(5,2)) BEGIN UPDATE employees SET salary = salary * (1 + pct/100) WHERE id = empId; END; -> Option C
Quick Check:
Use IN params, BEGIN...END, and correct percentage formula [OK]
Hint: Use IN params and multiply salary by (1 + pct/100) [OK]
Common Mistakes:
Forgetting IN keyword for parameters
Adding percentage directly instead of multiplying
Missing BEGIN...END or semicolons
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.