Bird
Raised Fist0
SQLquery~5 mins

UPDATE multiple columns in SQL

Choose your learning style10 modes available
Introduction
We use UPDATE to change data in a table. Updating multiple columns lets us change several pieces of information in one go.
When you want to fix or change several details about a person in a contact list.
When you need to update the price and stock of a product at the same time.
When you want to change both the status and the date of an order.
When correcting multiple fields after getting new information from a customer.
Syntax
SQL
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
Use commas to separate each column = value pair.
The WHERE clause limits which rows get updated. Without it, all rows change.
Examples
This changes the first and last name of the employee with ID 5.
SQL
UPDATE employees
SET first_name = 'Anna', last_name = 'Smith'
WHERE employee_id = 5;
This updates the price and stock for product number 10.
SQL
UPDATE products
SET price = 19.99, stock = 50
WHERE product_id = 10;
This marks order 100 as shipped and sets the shipped date.
SQL
UPDATE orders
SET status = 'Shipped', shipped_date = '2024-06-01'
WHERE order_id = 100;
Sample Program
This creates a users table, adds two users, then updates the email and city for user with id 1. Finally, it shows the updated row.
SQL
CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  email VARCHAR(50),
  city VARCHAR(50)
);

INSERT INTO users (id, name, email, city) VALUES
(1, 'John Doe', 'john@example.com', 'New York'),
(2, 'Jane Roe', 'jane@example.com', 'Los Angeles');

UPDATE users
SET email = 'john.doe@example.com', city = 'Boston'
WHERE id = 1;

SELECT * FROM users WHERE id = 1;
OutputSuccess
Important Notes
Always double-check your WHERE clause to avoid updating all rows by mistake.
You can update as many columns as you want in one statement.
If you omit the WHERE clause, every row in the table will be updated.
Summary
UPDATE changes data in existing rows.
Use SET to list columns and their new values, separated by commas.
WHERE controls which rows get updated; be careful with it.

Practice

(1/5)
1. What does the SQL UPDATE statement do when you specify multiple columns in the SET clause?
easy
A. It deletes the rows that match the condition.
B. It only updates the first column listed and ignores the rest.
C. It creates new rows with the specified column values.
D. It changes the values of all specified columns in the selected rows.

Solution

  1. Step 1: Understand the UPDATE statement

    The UPDATE statement modifies existing rows in a table.
  2. Step 2: Effect of multiple columns in SET clause

    When multiple columns are listed in SET, all those columns are updated in the rows that match the WHERE condition.
  3. Final Answer:

    It changes the values of all specified columns in the selected rows. -> Option D
  4. Quick Check:

    UPDATE with multiple columns updates all listed columns [OK]
Hint: SET updates all listed columns together [OK]
Common Mistakes:
  • Thinking UPDATE adds new rows
  • Believing UPDATE deletes rows
  • Assuming only first column updates
2. Which of the following is the correct syntax to update two columns, price and stock, in a table named products?
easy
A. UPDATE products SET price = 10, stock = 50 WHERE id = 1;
B. UPDATE products (price = 10, stock = 50) WHERE id = 1;
C. UPDATE products SET (price, stock) = (10, 50) WHERE id = 1;
D. UPDATE products WHERE id = 1 SET price = 10, stock = 50;

Solution

  1. Step 1: Recall correct UPDATE syntax

    The correct syntax is UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
  2. Step 2: Check each option

    UPDATE products SET price = 10, stock = 50 WHERE id = 1; matches the correct syntax exactly. The other options have syntax errors.
  3. Final Answer:

    UPDATE products SET price = 10, stock = 50 WHERE id = 1; -> Option A
  4. Quick Check:

    SET column = value pairs separated by commas [OK]
Hint: Use SET column=value, column=value syntax [OK]
Common Mistakes:
  • Using parentheses incorrectly in SET clause
  • Placing WHERE before SET
  • Missing commas between column assignments
3. Given the table employees with columns salary and bonus, what will be the result of this query?
UPDATE employees SET salary = salary + 1000, bonus = 500 WHERE department = 'Sales';
medium
A. All employees get salary and bonus updated regardless of department.
B. Only the salary of Sales employees increases; bonus remains unchanged.
C. All employees in Sales get their salary increased by 1000 and bonus set to 500.
D. Syntax error because multiple columns cannot be updated together.

Solution

  1. Step 1: Understand the WHERE clause effect

    The WHERE clause limits updates to rows where department = 'Sales'.
  2. Step 2: Analyze SET clause changes

    Salary increases by 1000 and bonus is set to 500 for those rows only.
  3. Final Answer:

    All employees in Sales get their salary increased by 1000 and bonus set to 500. -> Option C
  4. Quick Check:

    WHERE filters rows; SET updates all listed columns [OK]
Hint: WHERE limits rows; SET updates all columns listed [OK]
Common Mistakes:
  • Ignoring WHERE and updating all rows
  • Thinking bonus stays unchanged
  • Believing multiple columns update causes error
4. Identify the error in this SQL statement:
UPDATE orders SET status = 'Shipped' stock = 0 WHERE order_id = 123;
medium
A. WHERE clause should come before SET clause.
B. Missing comma between column assignments in SET clause.
C. Incorrect table name used.
D. Quotes around 'Shipped' should be double quotes.

Solution

  1. Step 1: Check SET clause syntax

    Multiple columns must be separated by commas in SET clause.
  2. Step 2: Identify missing comma

    Between status = 'Shipped' and stock = 0, a comma is missing.
  3. Final Answer:

    Missing comma between column assignments in SET clause. -> Option B
  4. Quick Check:

    Separate columns with commas in SET [OK]
Hint: Put commas between each column=value pair [OK]
Common Mistakes:
  • Omitting commas between columns
  • Placing WHERE before SET
  • Using wrong quotes for strings
5. You want to update the price and discount columns in the products table only for items where category is 'Electronics' and current stock is less than 10. Which query correctly does this?
hard
A. UPDATE products SET price = price * 0.9, discount = 10 WHERE category = 'Electronics' AND stock < 10;
B. UPDATE products SET price = price * 0.9, discount = 10 WHERE category = 'Electronics' OR stock < 10;
C. UPDATE products SET price = price * 0.9 discount = 10 WHERE category = 'Electronics' AND stock < 10;
D. UPDATE products SET price = price * 0.9, discount = 10 WHERE category = 'Electronics' AND stock > 10;

Solution

  1. Step 1: Understand the condition requirements

    We want to update only rows where category is 'Electronics' AND stock is less than 10.
  2. Step 2: Check each option's WHERE clause and syntax

    UPDATE products SET price = price * 0.9, discount = 10 WHERE category = 'Electronics' AND stock < 10; uses AND with correct conditions and proper syntax. UPDATE products SET price = price * 0.9, discount = 10 WHERE category = 'Electronics' OR stock < 10; uses OR, which updates more rows. UPDATE products SET price = price * 0.9 discount = 10 WHERE category = 'Electronics' AND stock < 10; misses a comma between assignments. UPDATE products SET price = price * 0.9, discount = 10 WHERE category = 'Electronics' AND stock > 10; uses stock > 10, which is incorrect.
  3. Final Answer:

    UPDATE products SET price = price * 0.9, discount = 10 WHERE category = 'Electronics' AND stock < 10; -> Option A
  4. Quick Check:

    Use AND for combined conditions and commas between columns [OK]
Hint: Use AND for all conditions; separate columns with commas [OK]
Common Mistakes:
  • Using OR instead of AND in WHERE
  • Missing commas between columns
  • Wrong comparison operators in WHERE
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