Bird
Raised Fist0
MySQLquery~10 mins

Variables and control flow in MySQL - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a variable named 'counter' with initial value 0.

MySQL
DECLARE counter [1];
Drag options to blanks, or click blank then click option'
AINT DEFAULT 0
BVARCHAR(10)
CDATE
DTEXT
Attempts:
3 left
💡 Hint
Common Mistakes
Using VARCHAR for a number variable.
Not setting an initial value.
2fill in blank
medium

Complete the code to set the variable 'counter' to 5.

MySQL
SET [1] = 5;
Drag options to blanks, or click blank then click option'
A@counter
Bcounter
C$counter
D#counter
Attempts:
3 left
💡 Hint
Common Mistakes
Using @ prefix which is for user-defined session variables.
Using $ or # which are not valid prefixes.
3fill in blank
hard

Fix the error in the IF statement to check if 'counter' is less than 10.

MySQL
IF counter [1] 10 THEN
  SET counter = counter + 1;
END IF;
Drag options to blanks, or click blank then click option'
A!=
B=
C==
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using == which is invalid in MySQL.
Using = which is assignment, not comparison.
4fill in blank
hard

Fill both blanks to create a WHILE loop that runs while 'counter' is less than 5.

MySQL
WHILE counter [1] 5 DO
  SET counter = counter [2] 1;
END WHILE;
Drag options to blanks, or click blank then click option'
A<
B+
C-
D>
Attempts:
3 left
💡 Hint
Common Mistakes
Using > which reverses the loop condition.
Using - which decreases counter causing infinite loop.
5fill in blank
hard

Fill all three blanks to declare a variable 'total', set it to 0, and increment it by 'value' inside a loop.

MySQL
DECLARE [1] INT DEFAULT 0;
SET [2] = 0;
SET total = total [3] value;
Drag options to blanks, or click blank then click option'
Atotal
C+
D-
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names in declaration and assignment.
Using - which subtracts instead of adds.

Practice

(1/5)
1. What is the purpose of a variable in MySQL stored procedures?
easy
A. To create new tables dynamically
B. To permanently save data in the database
C. To store temporary data during procedure execution
D. To define user permissions

Solution

  1. Step 1: Understand variable role in procedures

    Variables hold temporary data only while the procedure runs.
  2. Step 2: Differentiate from permanent storage

    Permanent data is stored in tables, not variables.
  3. Final Answer:

    To store temporary data during procedure execution -> Option C
  4. Quick Check:

    Variables = Temporary data [OK]
Hint: Variables hold temporary data inside procedures [OK]
Common Mistakes:
  • Confusing variables with table data storage
  • Thinking variables create database objects
  • Assuming variables control user access
2. Which of the following is the correct way to declare and set a variable in MySQL stored procedures?
easy
A. SET x INT; DECLARE x = 10;
B. DECLARE x INT; SET x = 10;
C. DECLARE x = 10 INT;
D. SET x = 10; DECLARE x INT;

Solution

  1. Step 1: Recall syntax for variable declaration

    Use DECLARE variable_name data_type; to declare.
  2. Step 2: Assign value using SET

    Use SET variable_name = value; after declaration.
  3. Final Answer:

    DECLARE x INT; SET x = 10; -> Option B
  4. Quick Check:

    DECLARE then SET = correct syntax [OK]
Hint: Declare first, then set value with SET [OK]
Common Mistakes:
  • Using SET before DECLARE
  • Combining declaration and assignment incorrectly
  • Wrong order of keywords
3. Consider the following MySQL procedure snippet:
DECLARE counter INT DEFAULT 1;
WHILE counter <= 3 DO
SET counter = counter + 1;
END WHILE;
SELECT counter;

What will be the output of the SELECT counter; statement?
medium
A. 3
B. Error due to missing BEGIN...END
C. 1
D. 4

Solution

  1. Step 1: Trace the WHILE loop increments

    Counter starts at 1, increments by 1 each loop until counter > 3.
  2. Step 2: Count loop iterations and final value

    Loop runs while counter=1,2,3; increments to 4 and stops.
  3. Final Answer:

    4 -> Option D
  4. Quick Check:

    Counter ends at 4 after loop [OK]
Hint: WHILE increments counter until condition false [OK]
Common Mistakes:
  • Assuming counter stops at 3
  • Forgetting counter increments before condition check
  • Thinking syntax error without BEGIN...END in snippet
4. Identify the error in this MySQL stored procedure snippet:
DECLARE total INT;
SET total = 0
WHILE total < 5 DO
SET total = total + 1;
END WHILE;
medium
A. Missing semicolon after SET total = 0
B. WHILE loop condition syntax is wrong
C. DECLARE must be inside BEGIN...END block
D. Variable total not declared

Solution

  1. Step 1: Check statement endings

    SET total = 0 is missing a semicolon at the end.
  2. Step 2: Validate syntax for DECLARE and WHILE

    DECLARE is valid before BEGIN, and WHILE syntax is correct.
  3. Final Answer:

    Missing semicolon after SET total = 0 -> Option A
  4. Quick Check:

    Every statement needs semicolon [OK]
Hint: Check semicolons after each statement [OK]
Common Mistakes:
  • Ignoring missing semicolon errors
  • Thinking DECLARE must be inside BEGIN...END always
  • Misreading WHILE syntax
5. You want to create a MySQL stored procedure that counts how many numbers between 1 and 10 are even, using variables and control flow. Which of the following code snippets correctly implements this?
hard
A. DECLARE count_even INT DEFAULT 0; DECLARE i INT DEFAULT 1; WHILE i <= 10 DO IF i % 2 = 0 THEN SET count_even = count_even + 1; END IF; SET i = i + 1; END WHILE; SELECT count_even;
B. DECLARE count_even INT; SET count_even = 0; FOR i IN 1..10 DO IF i % 2 = 0 THEN SET count_even = count_even + 1; END IF; END FOR; SELECT count_even;
C. DECLARE count_even INT DEFAULT 0; SET i = 1; WHILE i < 10 DO IF i % 2 = 1 THEN SET count_even = count_even + 1; END IF; SET i = i + 1; END WHILE; SELECT count_even;
D. DECLARE count_even INT DEFAULT 0; DECLARE i INT DEFAULT 1; WHILE i <= 10 DO IF i / 2 = 0 THEN SET count_even = count_even + 1; END IF; SET i = i + 1; END WHILE; SELECT count_even;

Solution

  1. Step 1: Check loop and variable initialization

    DECLARE count_even INT DEFAULT 0; DECLARE i INT DEFAULT 1; WHILE i <= 10 DO IF i % 2 = 0 THEN SET count_even = count_even + 1; END IF; SET i = i + 1; END WHILE; SELECT count_even; correctly declares variables and initializes them.
  2. Step 2: Verify condition and increment logic

    DECLARE count_even INT DEFAULT 0; DECLARE i INT DEFAULT 1; WHILE i <= 10 DO IF i % 2 = 0 THEN SET count_even = count_even + 1; END IF; SET i = i + 1; END WHILE; SELECT count_even; uses WHILE loop from 1 to 10, checks even with modulo, increments count and i properly.
  3. Step 3: Identify errors in other options

    DECLARE count_even INT; SET count_even = 0; FOR i IN 1..10 DO IF i % 2 = 0 THEN SET count_even = count_even + 1; END IF; END FOR; SELECT count_even; uses invalid FOR syntax; C counts odd numbers; D uses division instead of modulo.
  4. Final Answer:

    Option A code correctly counts even numbers between 1 and 10 -> Option A
  5. Quick Check:

    Use WHILE + modulo for even check [OK]
Hint: Use WHILE loop and modulo (%) to check even numbers [OK]
Common Mistakes:
  • Using invalid FOR loop syntax in MySQL
  • Confusing modulo (%) with division (/)
  • Counting odd numbers instead of even
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard