SQL UPDATE Statement

The SQL UPDATE statement is used to modify existing records in a table. Whether you want to change one row or multiple rows at once, the UPDATE statement provides a way to alter data in your database dynamically.

In this guide, we will cover the syntax, step-by-step explanations, and a range of examples to help you understand how to use UPDATE statement effectively.


Syntax of SQL UPDATE Statement

The basic syntax of an SQL UPDATE statement is as follows:

</>
Copy
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Each part of the syntax has a specific purpose:

  • UPDATE: Specifies the table in which you want to modify data.
  • SET: Lists the columns to be updated with their new values. Multiple columns can be updated in one statement, separated by commas.
  • WHERE: Filters the rows to be updated. Without a WHERE clause, all rows in the table will be updated, which can be risky and should be used with caution.

For safety, it’s best to always use a WHERE clause with UPDATE unless you intend to update all rows in the table.


Step-by-Step Examples with MySQL

We’ll go through various examples demonstrating the UPDATE statement in MySQL. Using MySQL 8.0 with MySQL Workbench, we’ll use a sample students table with fields id, name, age, grade, and locality.

Setup for Examples: Creating the Database and Table

1. Open MySQL Workbench and create a new database:

</>
Copy
CREATE DATABASE school;

2. Select the school database:

</>
Copy
USE school;

3. Create a table named students:

</>
Copy
CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    age INT,
    grade VARCHAR(10),
    locality VARCHAR(50)
);

4. Insert some sample records to use in our examples:

</>
Copy
INSERT INTO students (name, age, grade, locality)
VALUES
('Alice', 14, '8th', 'Northside'),
('Bob', 15, '9th', 'Westend'),
('Charlie', 14, '8th', 'Northside'),
('David', 16, '10th', 'Southend'),
('Eva', 15, '9th', 'Westend');

Examples: Updating Records in the Table

Now, let’s explore different scenarios of updating records in this table.

SQL UPDATE Statement - Example Table Data

1. Updating a Single Column in a Specific Row

To update the locality of the student with id = 2:

</>
Copy
UPDATE students
SET locality = 'Eastside'
WHERE id = 2;

This query updates the locality of the student named Bob from “Westend” to “Eastside”.

SQL UPDATE Statement - Updating a Single Column in a Specific Row

2. Updating Multiple Columns in a Single Row

To update both the grade and age of the student named Eva:

</>
Copy
UPDATE students
SET grade = '10th', age = 16
WHERE name = 'Eva';

This query modifies two columns simultaneously, updating Eva’s grade to “10th” and age to 16.

SQL UPDATE Statement - Updating Multiple Columns in a Single Row

3. Updating Multiple Rows Using a Condition

To update the locality of all students in the “8th” grade:

</>
Copy
UPDATE students
SET locality = 'Central'
WHERE grade = '8th';

This query updates the locality to “Central” for all students in the 8th grade. Multiple rows are affected because of the condition.

SQL UPDATE Statement - Updating Multiple Rows Using a Condition

4. Incrementing Values in a Column

To increment the age of all students by 1:

</>
Copy
UPDATE students
SET age = age + 1;

This query increases the age of every student by 1 year. Be cautious with this type of update if no WHERE condition is specified, as it will affect all rows.

SQL UPDATE Statement - Incrementing Values in a Column

5. Updating All Rows in a Table

If you need to reset a value across all rows, you can omit the WHERE clause. For example, to reset all students’ grade to “Not Assigned”:

</>
Copy
UPDATE students
SET grade = 'NA';

This query changes the grade of every student to “Not Assigned”. Note: Be careful with UPDATE statements without a WHERE clause, as it affects all rows.

SQL UPDATE Statement - Updating All Rows in a Table

FAQs for SQL UPDATE

1. What does the SQL UPDATE statement do?

The SQL UPDATE statement modifies existing data in a table. It allows you to change values in specific rows based on a condition or in all rows if no condition is specified.

2. Can I update multiple columns at once with SQL UPDATE?

Yes, you can update multiple columns by listing each column with its new value, separated by commas in the SET clause.

3. What happens if I use SQL UPDATE without a WHERE clause?

If you omit the WHERE clause, the UPDATE statement will apply the changes to all rows in the table, which may lead to unintended data modifications.

4. Can I use a subquery with SQL UPDATE?

Yes, you can use subqueries to update values conditionally based on the result of another query, which can be useful for more complex updates.

5. How do I increment a value in a column using SQL UPDATE?

To increment a value, you can use arithmetic operations in the SET clause. For example, SET age = age + 1 will add 1 to the age value in each selected row.