Skip to main content

How to Update Multiple Columns in SQL

Learn how to update multiple columns in SQL using a single query for improved efficiency. Explore practical advanced techniques and examples, including single row updates and multiple row updates.
Nov 8, 2024  · 8 min read

When working with databases, efficiency is key, and knowing how to update multiple columns at once in SQL is a good skill. As a data analyst, understanding how to update multiple columns in SQL can improve your productivity and prevent errors. This article will explore how to update multiple columns using SQL, covering syntax, techniques, and examples to demonstrate the best practices.

You will learn how to update multiple columns with the UPDATE statement and how to handle joins, conditions, and performance considerations to manage data effectively. As we get started, I recommend taking DataCamp’s Introduction to SQL and Learn SQL courses to learn the fundamentals of SQL in querying databases. 

Understanding the Basics of Updating Multiple Columns in SQL

The UPDATE statement in SQL is used to modify data within a database. Its primary function is to alter existing records by updating values in one or more columns of a table. UPDATE is efficient because it allows multiple columns to be updated using a single statement. The following is the syntax of the UPDATE statement.

-- Update specific columns in a table
UPDATE table_name
SET column1 = value1,
    column2 = value2,
    column3 = value3
WHERE condition;
  • table_name: The table where you want to update the data.

  • column1, column2, column3: The columns being updated.

  • value1, value2, value3: The new values for the respective columns.

  • condition: The criteria that determine which rows are updated.

Using the UPDATE statement to update multiple columns is efficient since the database engine processes the operation faster, consuming fewer resources. The method is also simple because the code is simple to understand and maintain.

Examples of Updating Multiple Columns in SQL

You can update multiple columns in SQL for a single record or multiple rows in the table. Let's look at both:

Single row update

We use the single-row update when modifying values of multiple columns for one specific record. This method is straightforward when altering the values of a particular table entry.

The following query updates the salary and department columns in the employees table for one row where the employee_id = 101.

-- Updating salary and department columns
UPDATE employees
SET salary = 75000,        
    department = 'HR' 
-- Condition to target the specific row
WHERE employee_id = 101;

Multiple row update

Batch updates are necessary for scenarios where you must update multiple columns across several records. Multiple row updates happen when updating records based on specific conditions that affect more than one row.

Suppose you want to update the salary and position of multiple employees promoted in the Sales department. You could use the following query:

-- Update multiple columns 
UPDATE employees
-- Increase the salary by $5000 for each 
SET salary = salary + 5000, 
    position = 'Senior Sales Associate' 
WHERE department = 'Sales' 
  AND years_of_experience > 5;

Associate Data Engineer in SQL

Gain practical knowledge in ETL, SQL, and data warehousing for data engineering.
Explore Track

Advanced Techniques for Updating Multiple Columns in SQL

In some cases, updating multiple columns in SQL requires more advanced techniques, especially when handling null values, conditional logic, or updating based on data from other tables. 

When the value of a column depends on another column

We may want to update a column based on another column in the same table. Here we will use basic logic with expressions to update the column.

For example, the following query calculates the bonus column as a percentage of the salary column for certain employees.

-- Update bonus as 10% of the salary
UPDATE employees
SET bonus = salary * 0.10 
-- Only apply the update to Sales department
WHERE department = 'Sales'; 

Update multiple columns using COALESCE for NULL handling

The COALESCE function can effectively manage null values when updating multiple columns. This ensures that null values are replaced with appropriate defaults, maintaining data integrity.

The query below updates the salary and department columns with the given value. If the column contains a NULL, it is replaced with a default value.

UPDATE employees
-- If salary is NULL, set it to 50,000
SET salary = COALESCE(salary, 50000), 
-- If department is NULL, set it to 'IT'
    department = COALESCE(department, 'IT') 
-- Apply update to specific employee IDs
WHERE employee_id IN (102, 103, 104); 

Update multiple columns and conditional updates with CASE statements

The CASE statement can be used to conditionally update columns based on specific criteria. This allows for more granular control over which values are updated and under what circumstances, adding flexibility to SQL updates.

For example, you may want to update employees’ bonus and position based on their performance_rating, as I'm demonstrating here:

-- Update bonus and position department
UPDATE employees
SET bonus = CASE 
                WHEN performance_rating = 'A' THEN salary * 0.15 
                WHEN performance_rating = 'B' THEN salary * 0.10 
                ELSE salary * 0.05
            END,
    position = CASE 
                  WHEN performance_rating = 'A' THEN 'Team Lead' 
                  WHEN performance_rating = 'B' THEN 'Senior'
                  ELSE position
              END
-- Apply update only to employees in the Sales department
WHERE department = 'Sales';

Updating multiple columns while joining tables

You can also use JOIN within the UPDATE statement to update multiple columns based on data from a related table.

Assume you have two tables, employees and departments. You want to update the employees table with department names and locations from the departments table.

-- Update department name and location from departments table
UPDATE employees e
JOIN departments d ON e.department_id = d.department_id
SET e.department_name = d.department_name,
    e.location = d.location
WHERE e.department_id IN (1, 2, 3);

I recommend trying out our SQL Fundamentals skill track and our Database Design course to learn more about database design and joining tables. Also, check out the tutorial for the SQL UPDATE with JOIN: How it Works to learn about cross-table updates.

Performance Optimization and Transaction Management

Performance optimization is important when dealing with SQL updates for multiple columns, especially for large datasets. Consider the following best practices to ensure data consistency and database optimization.

  • Efficiency and Atomicity: Updating multiple columns in a single query improves database performance by reducing the number of operations the database engine needs to process. This improves efficiency and also atomicity, meaning all updates succeed together or none are applied, preserving data consistency.
  • Using Transactions for Safety: Transactions allow you to safeguard data by rolling back changes if something goes wrong, so partial updates don’t compromise the database. Transactions also make batch updates more reliable in multi-user environments, reducing the risk of data conflicts.

Common Pitfalls and Mistakes

There are some common pitfalls and mistakes that might lead to errors when handling multiple-column updates. Let us look at some examples and how to avoid them.

  • Forgetting the WHERE Clause: Forgetting to include the WHERE clause in the UPDATE statement may cause unintended updates to all rows in the data. To avoid this, always ensure the WHERE clause is correctly defined to point to the columns you intend to update.

  • Data Type Mismatches: Mismatches between data types can cause errors or result in incorrect data storage. Always validate that the data types of the values used in your UPDATE query match the columns they are updating.

If you want to learn more about data types and filtering data using WHERE, I recommend taking DataCamp’s Intermediate SQL course.

Conclusion

Understanding how to update multiple columns in SQL is important for database efficiency and accuracy. I hope after reading this, you see that updating multiple columns at the same time is a necessary skill, and you shouldn't try shortcuts, or else you might cause partial transactions or inconsistent states.

Depending on your career direction, I recommend enrolling in either DataCamp’s Associate Data Analyst in SQL career track to learn the industry-level skills required to become a data analyst, or trying our Associate Date Engineer in SQL career track if you want to become a data engineer. In either case, I would also try to obtain the SQL Associate Certification, which is a compelling way to demonstrate to employers your mastery of using SQL to solve business problems.

Associate Data Engineer in SQL

Gain practical knowledge in ETL, SQL, and data warehousing for data engineering.

Photo of Allan Ouko
Author
Allan Ouko
LinkedIn
I create articles that simplify data science and analytics, making them easy to understand and accessible.

SQL FAQs

Can I update multiple columns in SQL in a single query?

Yes, you can update multiple columns in a single UPDATE statement at once, improving efficiency and accuracy.

Can I update multiple columns with different values for different rows?

Yes, you can update multiple rows with different values by using conditions in the WHERE clause or applying logic within the CASE statement.

What happens if I forget the WHERE clause when updating multiple columns?

If you omit the WHERE clause, the update will apply to all rows in the table, which can lead to unintentional data modification.

How do I handle NULL values when updating multiple columns?

You can use the COALESCE function to handle NULL values by providing default values when updating.

Can I update columns using data from another table?

You can perform updates by joining tables, allowing you to update columns based on related data from a different table.

Topics

Learn SQL with DataCamp

course

Introduction to Relational Databases in SQL

4 hr
149.6K
Learn how to create one of the most efficient ways of storing data - relational databases!
See DetailsRight Arrow
Start Course
See MoreRight Arrow
Related

tutorial

SELECTing Multiple Columns in SQL

Learn how to easily select multiple columns from a database table in SQL, or select all columns from a table in one simple query.
DataCamp Team's photo

DataCamp Team

4 min

tutorial

SQL UPDATE with JOIN: How it Works

Learn how UPDATE with JOIN in SQL simplifies cross-table updates in SQL Server. Understand how INNER JOIN and LEFT JOIN differ for specific use cases, and explore alternatives using subqueries or the MERGE statement.
Allan Ouko's photo

Allan Ouko

9 min

tutorial

How to Use SQL PIVOT

Enhance your SQL skills with the SQL PIVOT operator. Learn to convert rows into columns to create pivot tables in SQL Server and Oracle.
Allan Ouko's photo

Allan Ouko

10 min

tutorial

SQL Tutorial: How To Write Better Queries

Learn about anti-patterns, execution plans, time complexity, query tuning, and optimization in SQL.
Karlijn Willems's photo

Karlijn Willems

35 min

tutorial

Cleaning Data in SQL

In this tutorial, you'll learn techniques on how to clean messy data in SQL, a must-have skill for any data scientist.
Sayak Paul's photo

Sayak Paul

10 min

code-along

Getting Started in SQL

Learn how to write basic queries in SQL and find answers to business questions.
Kelsey McNeillie's photo

Kelsey McNeillie

See MoreSee More