Bird
Raised Fist0
SQLquery~20 mins

UPDATE with WHERE condition in SQL - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
UPDATE Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
What is the output after this UPDATE?

Given the table Employees:

id | name   | salary
---+--------+--------
1  | Alice  | 5000
2  | Bob    | 4500
3  | Carol  | 5500

What will be the salary of Bob after running this query?

UPDATE Employees SET salary = salary + 500 WHERE name = 'Bob';
A5000
B4500
C5500
D500
Attempts:
2 left
💡 Hint

Only the row where name is 'Bob' is updated.

❓ query_result
intermediate
2:00remaining
How many rows are updated?

Consider the table Products:

product_id | name       | stock
-----------+------------+-------
1          | Pen        | 100
2          | Pencil     | 200
3          | Notebook   | 150
4          | Eraser     | 50

After running this query, how many rows will have their stock increased?

UPDATE Products SET stock = stock + 10 WHERE stock < 150;
A2
B1
C3
D4
Attempts:
2 left
💡 Hint

Check which rows have stock less than 150.

📝 Syntax
advanced
2:00remaining
Which UPDATE query is syntactically correct?

Choose the correct SQL UPDATE statement that increases price by 20 for products with category 'Books'.

AUPDATE Products price = price + 20 WHERE category = 'Books';
BUPDATE Products SET price + 20 WHERE category = 'Books';
CUPDATE Products SET price = price + 20 WHERE category = 'Books';
DUPDATE Products SET price = price + 20 category = 'Books';
Attempts:
2 left
💡 Hint

Remember the syntax: UPDATE table SET column = value WHERE condition;

❓ optimization
advanced
2:00remaining
Which query is more efficient to update salaries for employees in department 5?

Given a large Employees table with a department_id column, you want to increase salaries by 100 for all employees in department 5.

Which query is more efficient?

AUPDATE Employees SET salary = salary + 100;
BUPDATE Employees SET salary = salary + 100 WHERE department_id = 5;
CUPDATE Employees SET salary = salary + 100 WHERE department_id IN (SELECT department_id FROM Departments WHERE department_id = 5);
DUPDATE Employees SET salary = salary + 100 WHERE department_id > 0;
Attempts:
2 left
💡 Hint

Consider the condition that targets only department 5.

🔧 Debug
expert
2:00remaining
What error does this UPDATE query raise?

Consider this query:

UPDATE Employees SET salary = salary + 100 WHERE name = 'John' AND;

What error will the database return?

AConstraint violation error
BNo rows updated
CType error on salary column
DSyntax error near 'AND'
Attempts:
2 left
💡 Hint

Look carefully at the WHERE clause syntax.

Practice

(1/5)
1.

What does the WHERE clause do in an UPDATE statement?

easy
A. It adds new rows to the table.
B. It changes the table structure.
C. It limits which rows get updated.
D. It deletes rows from the table.

Solution

  1. Step 1: Understand the purpose of UPDATE

    The UPDATE statement changes data in existing rows of a table.
  2. Step 2: Role of WHERE clause in UPDATE

    The WHERE clause specifies which rows should be changed, so only those rows are updated.
  3. Final Answer:

    It limits which rows get updated. -> Option C
  4. Quick Check:

    WHERE clause = row filter [OK]
Hint: WHERE filters rows to update only those needed [OK]
Common Mistakes:
  • Thinking WHERE adds or deletes rows
  • Believing UPDATE changes table structure
  • Ignoring WHERE updates all rows
2.

Which of the following is the correct syntax to update the salary to 5000 for employees with id 3?

UPDATE employees SET salary = 5000 WHERE id = 3;
easy
A. UPDATE employees SET salary 5000 WHERE id = 3;
B. UPDATE employees salary = 5000 WHERE id = 3;
C. UPDATE employees SET salary = 5000 id = 3;
D. UPDATE employees SET salary = 5000 WHERE id = 3;

Solution

  1. Step 1: Check UPDATE syntax

    The correct syntax requires SET before column assignment and WHERE for condition.
  2. Step 2: Validate each option

    UPDATE employees SET salary = 5000 WHERE id = 3; uses SET and WHERE correctly; others miss SET or WHERE or have wrong syntax.
  3. Final Answer:

    UPDATE employees SET salary = 5000 WHERE id = 3; -> Option D
  4. Quick Check:

    SET + WHERE = correct UPDATE syntax [OK]
Hint: Always use SET before column assignments in UPDATE [OK]
Common Mistakes:
  • Omitting SET keyword
  • Forgetting WHERE clause
  • Missing equal sign (=) in assignment
3.

Given the table products:

id | name    | price
---+---------+-------
1  | Pen     | 10
2  | Pencil  | 5
3  | Eraser  | 3

What will be the result of this query?

UPDATE products SET price = price + 2 WHERE price < 10;
medium
A. All products will have their price increased by 2.
B. Only products with price less than 10 will have their price increased by 2.
C. No products will be updated because price is not changed.
D. Syntax error due to missing WHERE clause.

Solution

  1. Step 1: Identify rows matching WHERE condition

    Prices less than 10 are 5 and 3 (Pencil and Eraser).
  2. Step 2: Apply UPDATE only to matching rows

    Only Pencil and Eraser prices increase by 2, Pen remains 10.
  3. Final Answer:

    Only products with price less than 10 will have their price increased by 2. -> Option B
  4. Quick Check:

    WHERE filters rows updated [OK]
Hint: WHERE limits which rows get updated, others stay same [OK]
Common Mistakes:
  • Assuming all rows update without WHERE
  • Thinking price must be reset, not incremented
  • Confusing syntax error with correct query
4.

Find the error in this query:

UPDATE employees SET salary = 6000 WHERE;
medium
A. Missing condition after WHERE clause.
B. Missing SET keyword.
C. Incorrect table name.
D. No error, query is correct.

Solution

  1. Step 1: Analyze the WHERE clause

    The WHERE clause is incomplete; it must have a condition after it.
  2. Step 2: Check other parts of query

    SET keyword and table name are correct; only WHERE is incomplete.
  3. Final Answer:

    Missing condition after WHERE clause. -> Option A
  4. Quick Check:

    WHERE needs a condition [OK]
Hint: WHERE must always have a condition after it [OK]
Common Mistakes:
  • Leaving WHERE empty
  • Confusing missing SET with WHERE error
  • Assuming query runs without WHERE condition
5.

You have a table students with columns id, name, and grade. You want to increase the grade by 5 for all students who scored less than 50, but not exceed 50 after update. Which query correctly does this?

hard
A. UPDATE students SET grade = CASE WHEN grade + 5 > 50 THEN 50 ELSE grade + 5 END WHERE grade < 50;
B. UPDATE students SET grade = grade + 5 WHERE grade < 50 AND grade + 5 <= 50;
C. UPDATE students SET grade = grade + 5 WHERE grade < 50;
D. UPDATE students SET grade = 50 WHERE grade < 50;

Solution

  1. Step 1: Understand the requirement

    Increase grade by 5 only for grades less than 50, but cap max grade at 50.
  2. Step 2: Analyze each option

    UPDATE students SET grade = 50 WHERE grade < 50; sets all below 50 to 50 directly, no increase by 5. UPDATE students SET grade = grade + 5 WHERE grade < 50 AND grade + 5 <= 50; increases by 5 only if result ≤ 50, skipping some rows. UPDATE students SET grade = grade + 5 WHERE grade < 50; increases by 5 without capping at 50. UPDATE students SET grade = CASE WHEN grade + 5 > 50 THEN 50 ELSE grade + 5 END WHERE grade < 50; uses CASE to increase by 5 but caps at 50 correctly.
  3. Final Answer:

    UPDATE students SET grade = CASE WHEN grade + 5 > 50 THEN 50 ELSE grade + 5 END WHERE grade < 50; -> Option A
  4. Quick Check:

    Use CASE to cap values in UPDATE [OK]
Hint: Use CASE in UPDATE to handle conditional value changes [OK]
Common Mistakes:
  • Not capping grade at 50
  • Updating all rows without WHERE
  • Skipping rows that would exceed 50
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