What does the IN parameter type mean in a MySQL stored procedure?
IN parameters are used to pass values into the procedure. They are read-only inside the procedure and cannot be changed.
Click to reveal answer
beginner
What is the purpose of an OUT parameter in a MySQL stored procedure?
OUT parameters are used to return values from the procedure back to the caller. They can be assigned new values inside the procedure.
Click to reveal answer
intermediate
Explain the INOUT parameter type in MySQL stored procedures.
INOUT parameters allow passing a value into the procedure and also returning a modified value back to the caller. They can be read and changed inside the procedure.
Click to reveal answer
beginner
How do you declare an OUT parameter in a MySQL stored procedure?
You declare it by specifying OUT before the parameter name and its data type, for example: OUT param_name INT.
Click to reveal answer
beginner
Can IN parameters be modified inside a MySQL stored procedure?
No, IN parameters are read-only inside the procedure and cannot be changed.
Click to reveal answer
Which parameter type allows you to pass a value into a MySQL procedure and get a modified value back?
AIN
BINOUT
CRETURN
DOUT
✗ Incorrect
INOUT parameters allow both input and output of values in MySQL procedures.
What happens if you try to change an IN parameter inside a MySQL procedure?
AThe value changes and is returned
BAn error occurs
CThe change is ignored; IN parameters are read-only
DThe procedure stops running
✗ Incorrect
IN parameters are read-only inside the procedure, so changes are ignored.
How do you specify an OUT parameter in a MySQL procedure declaration?
ABy writing IN before the parameter name
BBy writing RETURN before the parameter name
CBy writing INOUT before the parameter name
DBy writing OUT before the parameter name
✗ Incorrect
OUT parameters are declared by writing OUT before the parameter name.
Which parameter type cannot return a value back to the caller?
AIN
BOUT
CINOUT
DALL can return values
✗ Incorrect
IN parameters only pass values into the procedure and do not return values.
If you want to get a result from a procedure using parameters, which type should you use?
AOUT
BIN
CINOUT
DNone, use SELECT only
✗ Incorrect
OUT parameters are designed to return values from procedures.
Describe the differences between IN, OUT, and INOUT parameters in MySQL stored procedures.
Think about how data flows between caller and procedure.
You got /3 concepts.
How would you use an OUT parameter to get a value from a MySQL stored procedure?
Consider the steps to send data back from procedure to caller.
You got /3 concepts.
Practice
(1/5)
1. What does the IN parameter type in a MySQL stored procedure do?
easy
A. It declares a variable inside the procedure without passing values.
B. It passes a value into the procedure but does not allow changes to be sent back.
C. It allows both passing a value in and sending a changed value back.
D. It allows the procedure to send a value back to the caller only.
Solution
Step 1: Understand the role of IN parameters
IN parameters are used to pass values into a procedure. They act like input-only variables.
Step 2: Clarify output behavior of IN parameters
Changes to IN parameters inside the procedure do not affect the caller's variables; they are input-only.
Final Answer:
It passes a value into the procedure but does not allow changes to be sent back. -> Option B
Quick Check:
IN = input only [OK]
Hint: IN means input only, no output changes sent back [OK]
Common Mistakes:
Thinking IN parameters can send data back
Confusing IN with OUT or INOUT
Assuming IN parameters can be modified outside
2. Which of the following is the correct syntax to declare an OUT parameter in a MySQL stored procedure?
easy
A. CREATE PROCEDURE myProc(param OUT INT) BEGIN END;
B. CREATE PROCEDURE myProc(INOUT param INT) BEGIN END;
C. CREATE PROCEDURE myProc(OUT param INT) BEGIN END;
D. CREATE PROCEDURE myProc(param INT OUT) BEGIN END;
Solution
Step 1: Recall correct parameter declaration order
In MySQL, the parameter mode (IN, OUT, INOUT) comes before the parameter name and type.
Step 2: Check each option's syntax
CREATE PROCEDURE myProc(OUT param INT) BEGIN END; uses 'OUT param INT' which is correct. Placing OUT after the parameter name or type is invalid syntax.
Final Answer:
CREATE PROCEDURE myProc(OUT param INT) BEGIN END; -> Option C
Quick Check:
Parameter mode before name and type [OK]
Hint: Parameter mode (IN/OUT/INOUT) always comes first [OK]
Common Mistakes:
Placing OUT after parameter name or type
Mixing parameter mode with data type
Omitting BEGIN and END block
3. Consider this procedure call and definition:
CREATE PROCEDURE addValues(IN a INT, INOUT b INT, OUT c INT)
BEGIN
SET b = b + a;
SET c = a + b;
END;
CALL addValues(5, @varB, @varC);
If @varB is initially 10, what will be the values of @varB and @varC after the call?
medium
A. @varB = 15, @varC = 20
B. @varB = 10, @varC = 15
C. @varB = 5, @varC = 10
D. @varB = 15, @varC = 10
Solution
Step 1: Understand parameter roles and initial values
a = 5 (IN), b = 10 (INOUT), c is OUT (initially NULL). INOUT means b can be read and updated.
Step 2: Calculate new values inside procedure
SET b = b + a = 10 + 5 = 15; SET c = a + b = 5 + 15 = 20.
Final Answer:
@varB = 15, @varC = 20 -> Option A
Quick Check:
INOUT b updated, OUT c set correctly [OK]
Hint: INOUT changes persist; OUT must be set inside procedure [OK]
Common Mistakes:
Assuming INOUT parameter does not change
Confusing OUT parameter initial value
Ignoring that OUT must be assigned inside procedure
4. Given this procedure:
CREATE PROCEDURE testProc(INOUT x INT)
BEGIN
SET x = x + 1;
END;
Which of the following calls will cause an error?
medium
A. CALL testProc(@varX); -- @varX is a session variable
B. CALL testProc(NULL);
C. SET @varX = 10; CALL testProc(@varX);
D. CALL testProc(5);
Solution
Step 1: Understand INOUT parameter requirements
INOUT parameters require a variable to pass by reference, so the procedure can read and modify it.
Step 2: Analyze each call
CALL testProc(5); passes a literal (5), which is not a variable, causing an error. The other options pass variables or NULL variables, which are allowed.
Final Answer:
CALL testProc(5); -> Option D
Quick Check:
INOUT needs variable, not literal [OK]
Hint: INOUT requires variable, not constant literal [OK]
Common Mistakes:
Passing literals to INOUT parameters
Confusing INOUT with IN parameters
Assuming NULL literal is invalid for INOUT
5. You want to create a procedure that takes two numbers, adds them, and returns the sum and the product. Which parameter types should you use for the inputs and outputs?
hard
A. IN for both inputs, OUT for sum and product outputs
B. INOUT for inputs, IN for outputs
C. OUT for inputs, IN for outputs
D. IN for inputs, INOUT for outputs
Solution
Step 1: Identify input and output roles
The two numbers are inputs only, so they should be IN parameters. The sum and product are results to send back, so they should be OUT parameters.
Step 2: Match parameter types to roles
IN parameters accept input values; OUT parameters return output values. INOUT is for parameters used as both input and output, which is not needed here.
Final Answer:
IN for both inputs, OUT for sum and product outputs -> Option A
Quick Check:
Inputs = IN, Outputs = OUT [OK]
Hint: Use IN for inputs, OUT for outputs to separate roles clearly [OK]
Common Mistakes:
Using INOUT unnecessarily for outputs
Confusing OUT as input
Using IN for output parameters
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.