Pular para o conteúdo principal

Como atualizar várias colunas no SQL

Saiba como atualizar várias colunas no SQL usando uma única consulta para aumentar a eficiência. Explore técnicas e exemplos práticos avançados, incluindo atualizações de uma única linha e atualizações de várias linhas.
Actualizado 8 de nov. de 2024  · 8 min de leitura

Ao trabalhar com bancos de dados, a eficiência é fundamental, e saber como atualizar várias colunas de uma vez no SQL é uma boa habilidade. Como analista de dados, entender como atualizar várias colunas no SQL pode aumentar sua produtividade e evitar erros. Este artigo explorará como atualizar várias colunas usando SQL, abordando sintaxe, técnicas e exemplos para demonstrar as práticas recomendadas.

Você aprenderá a atualizar várias colunas com a instrução UPDATE e a lidar com uniões, condições e considerações de desempenho para gerenciar dados de forma eficaz. As de começarmos, recomendo que você faça os cursos Introduction to SQL e Learn SQL da DataCamp para aprender os fundamentos do SQL na consulta a bancos de dados. 

Entendendo os fundamentos da atualização de várias colunas no SQL

A instrução UPDATE no SQL é usada para modificar dados em um banco de dados. Sua principal função é alterar os registros existentes atualizando os valores em uma ou mais colunas de uma tabela. UPDATE é eficiente porque permite que várias colunas sejam atualizadas com um único comando. A seguir, a sintaxe da instrução UPDATE.

-- Update specific columns in a table
UPDATE table_name
SET column1 = value1,
    column2 = value2,
    column3 = value3
WHERE condition;
  • table_name: A tabela em que você deseja atualizar os dados.

  • column1, column2, column3: As colunas que estão sendo atualizadas.

  • value1, value2, value3: Os novos valores para as respectivas colunas.

  • condition: Os critérios que determinam quais linhas são atualizadas.

O uso da instrução UPDATE para atualizar várias colunas é eficiente, pois o mecanismo do banco de dados processa a operação mais rapidamente, consumindo menos recursos. O método também é simples porque o código é simples de entender e manter.

Exemplos de atualização de várias colunas no SQL

Você pode atualizar várias colunas no SQL para um único registro ou várias linhas na tabela. Vamos dar uma olhada em ambos:

Atualização de uma única linha

Usamos a atualização de linha única quando modificamos valores de várias colunas para um registro específico. Esse método é simples quando você altera os valores de uma determinada entrada da tabela.

A consulta a seguir atualiza as colunas salary e department na tabela employees para uma linha em que o 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;

Atualização de várias linhas

As atualizações em lote são necessárias para cenários em que você precisa atualizar várias colunas em vários registros. As atualizações de várias linhas ocorrem ao atualizar registros com base em condições específicas que afetam mais de uma linha.

Suponha que você queira atualizar os endereços salary e position de vários funcionários promovidos no departamento Sales. Você poderia usar a seguinte consulta:

-- 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;

Técnicas avançadas de atualização de várias colunas no SQL

Em alguns casos, a atualização de várias colunas no SQL requer técnicas mais avançadas, especialmente ao lidar com valores nulos, lógica condicional ou atualização com base em dados de outras tabelas. 

Quando o valor de uma coluna depende de outra coluna

Talvez você queira atualizar uma coluna com base em outra coluna da mesma tabela. Aqui, usaremos a lógica básica com expressões para atualizar a coluna.

Por exemplo, a consulta a seguir calcula a coluna bonus como uma porcentagem da coluna salary para determinados funcionários.

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

Atualizar várias colunas usando COALESCE para lidar com NULL

A função COALESCE pode gerenciar com eficácia os valores nulos ao atualizar várias colunas. Isso garante que os valores nulos sejam substituídos por padrões apropriados, mantendo a integridade dos dados.

A consulta abaixo atualiza as colunas salary e department com o valor fornecido. Se a coluna contiver um NULL, ele será substituído por um valor padrão.

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); 

Atualizar várias colunas e atualizações condicionais com instruções CASE

A instrução CASE pode ser usada para atualizar colunas condicionalmente com base em critérios específicos. Isso permite um controle mais granular sobre quais valores são atualizados e em quais circunstâncias, adicionando flexibilidade às atualizações SQL.

Por exemplo, você pode querer atualizar o bonus e o position dos funcionários com base no performance_rating deles, como demonstro aqui:

-- 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';

Atualização de várias colunas ao unir tabelas

Você também pode usar JOIN na instrução UPDATE para atualizar várias colunas com base nos dados de uma tabela relacionada.

Suponha que você tenha duas tabelas, employees e departments. Você deseja atualizar a tabela employees com nomes de departamentos e locais da tabela departments.

-- 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);

Recomendo que você experimente nosso curso de habilidades SQL Fundamentals e nosso curso Database Design para saber mais sobre design de banco de dados e união de tabelas. Além disso, confira o tutorial do SQL UPDATE with JOIN: Como funciona para que você saiba mais sobre atualizações entre tabelas.

Otimização de desempenho e gerenciamento de transações

A otimização do desempenho é importante quando você lida com atualizações SQL para várias colunas, especialmente para grandes conjuntos de dados. Considere as práticas recomendadas a seguir para garantir a consistência dos dados e a otimização do banco de dados.

  • Eficiência e atomicidade: A atualização de várias colunas em uma única consulta melhora o desempenho do banco de dados ao reduzir o número de operações que o mecanismo do banco de dados precisa processar. Isso aumenta a eficiência e também a atomicidade, o que significa que todas as atualizações são bem-sucedidas juntas ou nenhuma é aplicada, preservando a consistência dos dados.
  • Uso de transações para segurança: As transações permitem que você proteja os dados revertendo as alterações se algo der errado, de modo que as atualizações parciais não comprometam o banco de dados. As transações também tornam as atualizações em lote mais confiáveis em ambientes com vários usuários, reduzindo o risco de conflitos de dados.

Erros e armadilhas comuns

Há algumas armadilhas e erros comuns que podem levar a erros ao lidar com atualizações de várias colunas. Vejamos alguns exemplos e como evitá-los.

  • Esquecendo a cláusula WHERE: Se você esquecer de incluir a cláusula WHERE na instrução UPDATE, poderá causar atualizações não intencionais em todas as linhas dos dados. Para evitar isso, sempre verifique se a cláusula WHERE está definida corretamente para apontar para as colunas que você pretende atualizar.

  • Incompatibilidades de tipos de dados: As incompatibilidades entre os tipos de dados podem causar erros ou resultar em armazenamento incorreto de dados. Sempre valide se os tipos de dados dos valores usados na consulta UPDATE correspondem às colunas que estão sendo atualizadas.

Se você quiser saber mais sobre tipos de dados e filtragem de dados usando WHERE, recomendo que faça o curso SQL Intermediário do DataCamp.

Conclusão

Entender como atualizar várias colunas no SQL é importante para a eficiência e a precisão do banco de dados. Espero que, depois de ler isso, você perceba que a atualização de várias colunas ao mesmo tempo é uma habilidade necessária e que você não deve tentar atalhos, caso contrário, poderá causar transações parciais ou estados inconsistentes.

Dependendo do direcionamento da sua carreira, recomendo que você se inscreva no curso de carreira de Analista de Dados Associado em SQL da DataCamp para aprender as habilidades de nível setorial necessárias para se tornar um analista de dados, ou experimente nosso curso de carreira de Engenheiro de Dados Associado em SQL se você quiser se tornar um engenheiro de dados. Em ambos os casos, eu também tentaria obter a certificação SQL Associate, que é uma forma atraente de demonstrar aos empregadores que você domina o uso do SQL para resolver problemas de negócios.


Photo of Allan Ouko
Author
Allan Ouko
LinkedIn
Eu crio artigos que simplificam a ciência e a análise de dados, tornando-as fáceis de entender e acessíveis.

Perguntas frequentes sobre SQL

Posso atualizar várias colunas no SQL em uma única consulta?

Sim, você pode atualizar várias colunas em uma única instrução UPDATE de uma só vez, aumentando a eficiência e a precisão.

Posso atualizar várias colunas com valores diferentes para linhas diferentes?

Sim, você pode atualizar várias linhas com valores diferentes usando condições na cláusula WHERE ou aplicando lógica na instrução CASE.

O que acontece se eu esquecer a cláusula WHERE ao atualizar várias colunas?

Se você omitir a cláusula WHERE, a atualização será aplicada a todas as linhas da tabela, o que pode levar à modificação não intencional dos dados.

Como faço para lidar com valores NULL ao atualizar várias colunas?

Você pode usar a função COALESCE para lidar com os valores de NULL, fornecendo valores padrão ao atualizar.

Posso atualizar colunas usando dados de outra tabela?

Você pode realizar atualizações unindo tabelas, o que permite atualizar colunas com base em dados relacionados de uma tabela diferente.

Temas

Aprenda SQL com a DataCamp

curso

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!
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

tutorial

SELEÇÃO de várias colunas no SQL

Saiba como selecionar facilmente várias colunas de uma tabela de banco de dados em SQL ou selecionar todas as colunas de uma tabela em uma consulta simples.
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Exemplos e tutoriais de consultas SQL

Se você deseja começar a usar o SQL, nós o ajudamos. Neste tutorial de SQL, apresentaremos as consultas SQL, uma ferramenta poderosa que nos permite trabalhar com os dados armazenados em um banco de dados. Você verá como escrever consultas SQL, aprenderá sobre
Sejal Jaiswal's photo

Sejal Jaiswal

21 min

tutorial

Como usar um alias SQL para simplificar suas consultas

Explore como o uso de um alias SQL simplifica os nomes de colunas e tabelas. Saiba por que usar um alias SQL é fundamental para melhorar a legibilidade e gerenciar uniões complexas.
Allan Ouko's photo

Allan Ouko

9 min

tutorial

Tutorial do Insert Into SQL

A instrução "INSERT INTO" do SQL pode ser usada para adicionar linhas de dados a uma tabela no banco de dados.
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Introdução aos acionadores SQL: Um guia para desenvolvedores

Saiba como usar os acionadores SQL para automatizar tarefas, manter a integridade dos dados e melhorar o desempenho do banco de dados. Experimente exemplos práticos como os comandos CREATE, ALTER e DROP no MySQL e no Oracle.
Oluseye Jeremiah's photo

Oluseye Jeremiah

13 min

tutorial

Tutorial do SQL Server: Desbloqueie o poder do gerenciamento de dados

Explore o gerenciamento de dados com nosso tutorial do SQL Server. Do básico ao uso avançado, aprimore suas habilidades e navegue no SQL Server com confiança.

Kevin Babitz

13 min

See MoreSee More