Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a LOOP in PostgreSQL procedural language?
A LOOP is a control structure that repeats a block of code indefinitely until a EXIT statement is encountered.
Click to reveal answer
beginner
How does a WHILE loop work in PostgreSQL?
A WHILE loop repeats the code inside it as long as the given condition is true. It checks the condition before each iteration.
Click to reveal answer
intermediate
What is the difference between a FOR loop and a WHILE loop in PostgreSQL?
A FOR loop iterates over a range or query result automatically, while a WHILE loop repeats based on a condition you write and check manually.
Click to reveal answer
beginner
How do you exit a LOOP in PostgreSQL?
You use the EXIT statement to stop the LOOP when a certain condition is met.
Click to reveal answer
beginner
Write a simple example of a FOR loop in PostgreSQL that prints numbers from 1 to 5.
DECLARE i INT;
BEGIN
FOR i IN 1..5 LOOP
RAISE NOTICE 'Number: %', i;
END LOOP;
END;
Click to reveal answer
Which statement correctly exits a LOOP in PostgreSQL?
AEND LOOP;
BEXIT;
CSTOP;
DBREAK;
✗ Incorrect
In PostgreSQL, the EXIT statement is used to leave a LOOP.
What does a WHILE loop do before each iteration?
AChecks if the condition is true
BIncrements a counter automatically
CExecutes the loop body once unconditionally
DExits the loop
✗ Incorrect
A WHILE loop checks the condition before running the loop body each time.
Which loop type automatically iterates over a range in PostgreSQL?
AFOR
BLOOP
CWHILE
DIF
✗ Incorrect
FOR loops in PostgreSQL can iterate automatically over a range or query results.
What keyword starts a loop block in PostgreSQL?
ADO LOOP
BBEGIN LOOP
CSTART LOOP
DLOOP
✗ Incorrect
The LOOP keyword starts a loop block in PostgreSQL.
How do you write a FOR loop to iterate from 1 to 10 in PostgreSQL?
AFOR i IN 1 TO 10 LOOP
BFOR i FROM 1 TO 10 LOOP
CFOR i IN 1..10 LOOP
DFOR i BETWEEN 1 AND 10 LOOP
✗ Incorrect
The correct syntax uses two dots: FOR i IN 1..10 LOOP
Explain how LOOP, WHILE, and FOR loops differ in PostgreSQL and when you might use each.
Think about how each loop controls repetition and what stops it.
You got /6 concepts.
Describe how to safely exit a LOOP in PostgreSQL and why it is important.
Consider what happens if you forget to exit a loop.
You got /4 concepts.
Practice
(1/5)
1. What does a LOOP statement do in PostgreSQL procedural code?
easy
A. Executes code only if a condition is true at the start.
B. Runs the code only once and then stops automatically.
C. Goes through each row of a query automatically.
D. Repeats the code inside it until an EXIT command is reached.
Solution
Step 1: Understand the LOOP statement
A LOOP in PostgreSQL repeats the code inside it indefinitely until an EXIT command is used to stop it.
Step 2: Compare with other loops
Unlike WHILE or FOR, LOOP does not check a condition automatically; it relies on EXIT to stop.
Final Answer:
Repeats the code inside it until an EXIT command is reached. -> Option D
Quick Check:
LOOP repeats until EXIT [OK]
Hint: LOOP runs forever until EXIT stops it [OK]
Common Mistakes:
Thinking LOOP stops automatically without EXIT
Confusing LOOP with WHILE or FOR
Assuming LOOP checks conditions itself
2. Which of the following is the correct syntax to start a FOR loop iterating over rows from a query in PostgreSQL?
easy
A. FOR record FROM users LOOP
B. FOR (SELECT * FROM users) LOOP
C. FOR record IN SELECT * FROM users LOOP
D. FOR record WHILE SELECT * FROM users LOOP
Solution
Step 1: Recall FOR loop syntax for query iteration
The correct syntax uses FOR record IN SELECT ... LOOP to iterate over query rows.
Step 2: Check each option
FOR record IN SELECT * FROM users LOOP matches the correct syntax. Options B, C, and D are invalid or incomplete.
Final Answer:
FOR record IN SELECT * FROM users LOOP -> Option C
Quick Check:
FOR ... IN SELECT ... LOOP is correct syntax [OK]
Hint: FOR loops use 'IN SELECT' to iterate query rows [OK]
Common Mistakes:
Omitting IN keyword
Using parentheses incorrectly
Mixing WHILE syntax with FOR
3. What will be the output of this PostgreSQL code snippet?
DECLARE
counter INT := 1;
total INT := 0;
BEGIN
WHILE counter <= 3 LOOP
total := total + counter;
counter := counter + 1;
END LOOP;
RAISE NOTICE 'Total: %', total;
END;
medium
A. Syntax error
B. Total: 6
C. Total: 0
D. Total: 3
Solution
Step 1: Trace the WHILE loop iterations
The loop runs while counter is 1, 2, and 3. Each time, total adds counter's value.
Step 2: Calculate total after loop
Total = 0 + 1 + 2 + 3 = 6 after the loop ends.
Final Answer:
Total: 6 -> Option B
Quick Check:
Sum 1+2+3 = 6 [OK]
Hint: Add counter each loop until condition false [OK]
Common Mistakes:
Stopping loop too early
Adding counter after increment
Confusing total initialization
4. Identify the error in this PostgreSQL loop code:
DECLARE
i INT := 1;
BEGIN
WHILE i < 5 LOOP
RAISE NOTICE '%', i;
END LOOP;
END;
medium
A. Missing increment of variable i inside the loop.
B. Incorrect declaration of variable i.
C. Syntax error in RAISE NOTICE statement.
D. WHILE condition should be i <= 5.
Solution
Step 1: Check loop control variable usage
The variable i is never increased inside the loop, so the condition i < 5 never becomes false.
Step 2: Understand loop behavior
Without increment, the loop runs forever causing an infinite loop error.
Final Answer:
Missing increment of variable i inside the loop. -> Option A
Quick Check:
Loop needs variable increment to stop [OK]
Hint: Always update loop variable to avoid infinite loops [OK]
Common Mistakes:
Forgetting to increment loop variable
Assuming loop stops automatically
Misreading WHILE condition
5. You want to sum the price column from a products table using a FOR loop in PL/pgSQL. Which code snippet correctly does this?
hard
A. DECLARE total NUMERIC := 0; BEGIN FOR rec IN SELECT price FROM products LOOP total := total + rec.price; END LOOP; RAISE NOTICE '%', total; END;
B. DECLARE total NUMERIC := 0; BEGIN FOR rec products LOOP total := total + rec.price; END LOOP; RAISE NOTICE '%', total; END;
C. DECLARE total NUMERIC := 0; BEGIN FOR rec FROM SELECT price FROM products LOOP total := total + rec.price; END LOOP; RAISE NOTICE '%', total; END;
D. DECLARE total NUMERIC := 0; BEGIN WHILE rec IN SELECT price FROM products LOOP total := total + rec.price; END LOOP; RAISE NOTICE '%', total; END;
Solution
Step 1: Identify correct FOR loop syntax for query rows
DECLARE total NUMERIC := 0; BEGIN FOR rec IN SELECT price FROM products LOOP total := total + rec.price; END LOOP; RAISE NOTICE '%', total; END; uses FOR rec IN SELECT price FROM products LOOP, which is correct syntax to iterate query results.
Step 2: Verify accumulation and output
Inside the loop, it adds rec.price to total and then outputs total with RAISE NOTICE.
Final Answer:
DECLARE total NUMERIC := 0; BEGIN FOR rec IN SELECT price FROM products LOOP total := total + rec.price; END LOOP; RAISE NOTICE '%', total; END; -> Option A
Quick Check:
FOR ... IN SELECT ... LOOP sums prices [OK]
Hint: Use FOR ... IN SELECT ... LOOP to sum column values [OK]