📖 Scenario: You are managing a small store database. You want to create a procedure that counts from 1 to 5 and stores each number in a table. This will help you understand how loops work inside SQL procedures.
🎯 Goal: Create a SQL procedure that uses a WHILE loop to insert numbers from 1 to 5 into a table called NumberList.
📋 What You'll Learn
Create a table called NumberList with one column num of type INTEGER.
Create a procedure called InsertNumbers.
Inside the procedure, declare a variable counter starting at 1.
Use a WHILE loop to insert numbers from 1 to 5 into NumberList.
Increment the counter by 1 each loop iteration.
End the procedure properly.
💡 Why This Matters
🌍 Real World
Loops in SQL procedures help automate repetitive tasks like inserting multiple rows or updating many records without writing repetitive code.
💼 Career
Understanding loops in SQL procedures is useful for database administrators and developers who need to write efficient and maintainable database scripts.
Progress0 / 4 steps
1
Create the NumberList table
Write a SQL statement to create a table called NumberList with one column named num of type INTEGER.
SQL
Hint
Use CREATE TABLE NumberList (num INTEGER); to create the table.
2
Start the InsertNumbers procedure and declare counter
Write the beginning of a SQL procedure named InsertNumbers. Inside it, declare an integer variable called counter and set it to 1.
SQL
Hint
Use CREATE PROCEDURE InsertNumbers() and inside BEGIN ... END, declare counter with DECLARE counter INT DEFAULT 1;.
3
Add the WHILE loop to insert numbers
Inside the InsertNumbers procedure, write a WHILE loop that runs while counter <= 5. In each loop, insert counter into NumberList and then increase counter by 1.
SQL
Hint
Use WHILE counter <= 5 DO ... END WHILE; with INSERT INTO NumberList (num) VALUES (counter); and SET counter = counter + 1; inside.
4
Complete the procedure with END
Finish the InsertNumbers procedure by adding the END keyword to close the procedure block.
SQL
Hint
Close the procedure with END;.
Practice
(1/5)
1. What is the main purpose of a WHILE loop inside a SQL procedure?
easy
A. To repeat a set of SQL statements while a condition is true
B. To create a new table in the database
C. To delete rows from a table
D. To join two tables together
Solution
Step 1: Understand the role of WHILE loops
A WHILE loop runs repeatedly as long as its condition remains true.
Step 2: Identify the purpose in procedures
Inside procedures, WHILE loops automate repeated tasks by running code multiple times.
Final Answer:
To repeat a set of SQL statements while a condition is true -> Option A
Quick Check:
WHILE loops repeat code while condition true = D [OK]
Hint: WHILE loops run code repeatedly while condition is true [OK]
Common Mistakes:
Confusing WHILE with creating or deleting tables
Thinking WHILE joins tables
Assuming WHILE runs only once
2. Which of the following is the correct syntax to start a WHILE loop in a SQL procedure?
easy
A. WHILE condition DO
B. WHILE condition BEGIN
C. WHILE (condition BEGIN
D. WHILE condition LOOP
Solution
Step 1: Recall standard SQL procedure syntax
In many SQL dialects, a WHILE loop starts with WHILE condition BEGIN to mark the loop start.
Step 2: Compare options
WHILE condition BEGIN matches the correct syntax without extra parentheses or keywords like DO or LOOP.
Final Answer:
WHILE condition BEGIN -> Option B
Quick Check:
WHILE condition BEGIN is correct syntax [OK]
Hint: WHILE loops use BEGIN to start block, no DO or LOOP [OK]
Common Mistakes:
Adding DO after WHILE (not standard in SQL)
Using LOOP keyword (not in standard SQL)
Putting condition in parentheses unnecessarily
3. Consider this SQL procedure snippet:
DECLARE @counter INT = 1; WHILE @counter <= 3 BEGIN PRINT @counter; SET @counter = @counter + 1; END
What will be printed when this runs?
medium
A. 1 2 3
B. 1 2 3 4
C. 0 1 2
D. No output, syntax error
Solution
Step 1: Analyze loop initialization and condition
The counter starts at 1 and loops while it is less than or equal to 3.
Step 2: Trace loop iterations
It prints 1, then increments to 2, prints 2, increments to 3, prints 3, then increments to 4 and stops.
Final Answer:
1 2 3 -> Option A
Quick Check:
Loop prints 1 to 3 inclusive = A [OK]
Hint: Count from start to condition limit inclusive [OK]
Common Mistakes:
Thinking loop prints 4 because of last increment
Confusing starting value as 0
Assuming syntax error due to PRINT
4. Identify the error in this SQL procedure snippet:
DECLARE @i INT = 1; WHILE @i < 5 BEGIN PRINT @i; END
medium
A. Incorrect declaration of @i variable
B. PRINT statement syntax is wrong
C. Missing increment of @i inside the loop causing infinite loop
D. WHILE condition should use <= instead of <
Solution
Step 1: Check loop body for variable update
The variable @i is never changed inside the loop, so condition stays true forever.
Step 2: Understand effect of missing increment
Without increment, loop runs infinitely printing @i repeatedly.
Final Answer:
Missing increment of @i inside the loop causing infinite loop -> Option C
Quick Check:
Loop variable must update to avoid infinite loop = B [OK]
Hint: Always update loop variable inside WHILE to avoid infinite loop [OK]
Common Mistakes:
Thinking PRINT syntax is wrong
Believing declaration is incorrect
Assuming condition operator causes error
5. You want to create a procedure that sums numbers from 1 to N using a WHILE loop. Which of these code snippets correctly implements this?
hard
A. DECLARE @sum INT = 0; WHILE @sum <= @N BEGIN SET @sum = @sum + 1; END
B. DECLARE @sum INT = 0, @i INT = 1; WHILE @i < @N BEGIN SET @sum = @sum + @i; END
C. DECLARE @sum INT = 0, @i INT = 1; WHILE @i <= @N BEGIN SET @sum = @sum + @i; SET @i = @i - 1; END
D. DECLARE @sum INT = 0, @i INT = 1; WHILE @i <= @N BEGIN SET @sum = @sum + @i; SET @i = @i + 1; END
Solution
Step 1: Check loop condition and variable updates
DECLARE @sum INT = 0, @i INT = 1; WHILE @i <= @N BEGIN SET @sum = @sum + @i; SET @i = @i + 1; END correctly loops from 1 to N, adding each number to sum and incrementing i.
Step 2: Identify errors in other options
DECLARE @sum INT = 0, @i INT = 1; WHILE @i < @N BEGIN SET @sum = @sum + @i; END misses increment of i, causing infinite loop. DECLARE @sum INT = 0, @i INT = 1; WHILE @i <= @N BEGIN SET @sum = @sum + @i; SET @i = @i - 1; END decrements i, causing infinite loop. DECLARE @sum INT = 0; WHILE @sum <= @N BEGIN SET @sum = @sum + 1; END incorrectly uses sum as loop variable.
Final Answer:
DECLARE @sum INT = 0, @i INT = 1; WHILE @i <= @N BEGIN SET @sum = @sum + @i; SET @i = @i + 1; END -> Option D
Quick Check:
Increment loop variable and add to sum = A [OK]
Hint: Increment loop counter and add to sum inside WHILE [OK]
Common Mistakes:
Forgetting to increment loop variable
Decrementing loop variable causing infinite loop
Using sum as loop condition variable
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.