SQL: como usar as cláusulas UPDATE e DELETE para atualizar e deletar dados em tabelas 

Danielle Oliveira
Danielle Oliveira

Compartilhe

Avalie este artigo

O que são cláusulas UPDATE e DELETE no SQL? 

Após a finalização de um projeto de modelagem de dados e a sua implementação, inicia-se o desenvolvimento para a manutenção do banco de dados. Essa manutenção se dá por meio do SGBD (Sistema de Gerenciamento de Banco de Dados), que nos permite realizar vários processos nos bancos de dados, como consultar, inserir, alterar e excluir dados das tabelas. 

Para alterar ou excluir dados de uma tabela utilizamos duas cláusulas fundamentais do SQL: UPDATE, responsável por modificar informações existentes, e DELETE, responsável por remover registros. 

Neste artigo, você vai aprender a sintaxe básica de cada cláusula UPDATE e DELETE, seus usos, exemplos práticos e os principais cuidados ao utilizá-las.. 

Banner promocional da Alura destacando oferta especial com 40% de desconto em cursos de tecnologia. A mensagem convida a transformar a carreira na maior escola tech da América Latina, com botão “Aproveite” para acessar a promoção.

Como usar o UPDATE? 

Palavra UPDATE representada em blocos coloridos ilustrando a cláusula SQL de atualização de dados. 

Utilizamos a cláusula UPDATE para realizar alterações nos dados armazenados em uma tabela do banco de dados. A sintaxe básica do comando utilizado por todos os bancos de dados relacionais é: 

UPDATE nome_da_tabela 
SET coluna = valor  
WHERE condição;

Na cláusula UPDATE, informamos o nome da tabela que queremos atualizar, utilizamos o SET para indicar os campos da tabela que serão atualizados e no WHERE expressamos a condição para a atualização, ou seja, especificamos quais registros devem ser atualizados na tabela. 

Como funciona o DELETE para remover registros? 

Utilizamos a cláusula DELETE para realizar a exclusão de dados de uma ou mais tabelas de um banco de dados. A sintaxe básica do comando utilizado por todos os bancos de dados relacionais é: 

DELETE 
FROM nome_da_tabela 
WHERE condição;

Na cláusula FROM, informamos o nome da tabela que queremos excluir os dados, e no WHERE informamos  a condição que especifica quais registros devem ser excluídos da tabela. 

Riscos e cuidados ao executar os comandos 

É importante ter cautela ao realizar comandos de atualização (UPDATE) ou exclusão (DELETE) em tabelas do banco de dados. 

Nesse sentido, um ponto de atenção é sempre informar uma condição ao realizar uma atualização ou exclusão de dados de uma tabela. Quando não informamos essa condição, corremos o risco de que todos os dados da tabela sejam atualizados, ou até mesmo excluídos, ocorrendo assim a perda de dados importantes. 

Por que usar a cláusula WHERE? 

Para que essa perda de dados em massa não ocorra, utilizamos a cláusula ´WHERE´. Especificamos nesta cláusula os critérios que os dados armazenados em uma tabela devem cumprir para que os registros que contêm esses parâmetros sejam incluídos nos resultados da consulta. 

Para aplicarmos na prática a utilização das cláusulas DELETE e 'UPDATE'. Vamos ver, na prática, o seguinte exemplo: 

Em um banco de dados existe a tabela de clientes e a tabela de vendedores, com os seguintes campos e registros: 

ID CPF NOME ENDEREÇO BAIRRO CIDADE ESTADO CEP 
01 1471156710 Érica Carvalho R. Iriquitia Jardins São Paulo SP 80012212 
02 19290992743 Fernando Cavalcante R. Dois de Fevereiro Agua Santa Rio de Janeiro RJ 22000000 
03 2600586709 César Teixeira Rua Conde de Bonfim Tijuca Rio de Janeiro RJ 22020001 
04 492472718 Eduardo Jorge R. Volta Grande Tijuca Rio de Janeiro RJ 22012002 
05 50534475787 Abel Silva Rua Humaitá Humaitá Rio de Janeiro RJ 22000212 
06 5576228758 Petra Oliveira R. Benício de Abreu Lapa São Paulo SP 88192029 
07 5840119709 Gabriel Araujo R. Manuel de Oliveira Santo Amaro São Paulo SP 80010221 
MATRÍCULA NOME BAIRRO COMISSÃO DATA ADMISSÃO 
235 Márcio Almeida Tijuca 0.08 2014-08-15 
236 Cláudia Morais Jardins 0.08 2013-09-17 
237 Roberta Martins Copacabana 0.11 2017-03-18 
238 Péricles Alves Santo Amaro 0.11 2016-08-21 

Exemplos de UPDATE Com WHERE 

Tendo então a tabela de clientes acima como nosso exemplo, precisamos atualizar as informações da cliente que possui o CPF `147115670´  e está na primeira linha da nossa tabela, para isso vamos utilizar a seguinte consulta: 

UPDATE CLIENTES 
SET nome = 'Érica Silvia' 
WHERE CPF = '1471156710';

Ao executar este comando apenas a cliente que possui o CPF `147115670´, terá os seus dados alterados: 

ID CPF NOME ENDEREÇO BAIRRO CIDADE ESTADO CEP 
01 1471156710 Érica Silva R. Iriquitia Jardins São Paulo SP 80012212 
02 19290992743 Fernando Cavalcante R. Dois de Fevereiro Agua Santa Rio de Janeiro RJ 22000000 
03 2600586709 César Teixeira Rua Conde de Bonfim Tijuca Rio de Janeiro RJ 22020001 
04 492472718 Eduardo Jorge R. Volta Grande Tijuca Rio de Janeiro RJ 22012002 
05 50534475787 Abel Silva Rua Humaitá Humaitá Rio de Janeiro RJ 22000212 
06 5576228758 Petra Oliveira R. Benício de Abreu Lapa São Paulo SP 88192029 
07 5840119709 Gabriel Araujo R. Manuel de Oliveira Santo Amaro São Paulo SP 80010221 

Para atualizar mais de um campo ao mesmo tempo, podemos utilizar a seguinte consulta: 

UPDATE CLIENTES 
SET NOME = 'Fernando Sousa',CEP = '80012212' 
WHERE CPF = '19290992743';

Assim, apenas as informações de nome e CEP do segundo cliente que possui o CPF 19290992743 será atualizado: 

ID CPF NOME ENDEREÇO BAIRRO CIDADE ESTADO CEP 
01 1471156710 Érica Silva R. Iriquitia Jardins São Paulo SP 80012212 
02 19290992743 Fernando Sousa R. Dois de Fevereiro Agua Santa Rio de Janeiro RJ 80012212 
03 2600586709 César Teixeira Rua Conde de Bonfim Tijuca Rio de Janeiro RJ 22020001 
04 492472718 Eduardo Jorge R. Volta Grande Tijuca Rio de Janeiro RJ 22012002 
05 50534475787 Abel Silva Rua Humaitá Humaitá Rio de Janeiro RJ 22000212 
06 5576228758 Petra Oliveira R. Benício de Abreu Lapa São Paulo SP 88192029 
07 5840119709 Gabriel Araujo R. Manuel de Oliveira Santo Amaro São Paulo SP 80010221 

O que acontece ao executar o UPDATE sem WHERE? 

Precisamos agora alterar os dados de um outro registro armazenado na nossa tabela de clientes: 

UPDATE Clientes 
SET ESTADO = 'SP';

Como a cláusula WHERE não foi utilizada, informando o registro que deveria ser atualizado, o valor do campo ESTADO de todos clientes foram alterados: 

ID CPF NOME ENDEREÇO BAIRRO CIDADE ESTADO CEP 
01 1471156710 Érica Silva R. Iriquitia Jardins São Paulo SP 80012212 
02 19290992743 Fernando Sousa R. Dois de Fevereiro Agua Santa Rio de Janeiro SP 80012212 
03 2600586709 César Teixeira Rua Conde de Bonfim Tijuca Rio de Janeiro SP 22020001 
04 492472718 Eduardo Jorge R. Volta Grande Tijuca Rio de Janeiro SP 22012002 
05 50534475787 Abel Silva Rua Humaitá Humaitá Rio de Janeiro SP 22000212 
06 5576228758 Petra Oliveira R. Benício de Abreu Lapa São Paulo SP 88192029 
07 5840119709 Gabriel Araujo R. Manuel de Oliveira Santo Amaro São Paulo SP 80010221 

Usando o DELETE Com WHERE 

Um dos clientes, solicitou que as suas informações fossem removidas do banco de dados. Para realizar esta exclusão, vamos utilizar a seguinte consulta: 

DELETE 
FROM Clientes 
WHERE CPF = '5840119709';

Ao executar este comando apenas o cliente Gabriel Araujo que estava localizado na ultima linha da tabela de clientes, foi excluído: 

ID CPF NOME ENDEREÇO BAIRRO CIDADE ESTADO CEP 
01 1471156710 Érica Silva R. Iriquitia Jardins São Paulo SP 80012212 
02 19290992743 Fernando Sousa R. Dois de Fevereiro Agua Santa Rio de Janeiro SP 80012212 
03 2600586709 César Teixeira Rua Conde de Bonfim Tijuca Rio de Janeiro SP 22020001 
04 492472718 Eduardo Jorge R. Volta Grande Tijuca Rio de Janeiro SP 22012002 
05 50534475787 Abel Silva Rua Humaitá Humaitá Rio de Janeiro SP 22000212 
06 5576228758 Petra Oliveira R. Benício de Abreu Lapa São Paulo SP 88192029 

O que acontece ao executar o DELETE sem WHERE? 

Pensando que se a cláusula WHERE não fosse utilizada ao executar um comando DELETE para remover algum registro, teríamos como resultado a exclusão de todos os dados armazenados na tabela, ou seja, perdendo os dados de todos os clientes: 

DELETE 
FROM Clientes;

Atualizar utilizando como condição outras tabelas 

Podemos informar na cláusula WHERE como condição para realizar atualização ou exclusão dos dados, outra consulta, que pode ser utilizada para buscar informações armazenadas na própria tabela ou em outras tabelas

Sendo assim, vamos analisar o exemplo abaixo: 
UPDATE VENDEDORES 
SET COMISSÃO  = COMISSÃO + 0.03 
WHERE COMISSÃO = (SELECT min(COMISSÃO) FROM VENDEDORES)

O SELECT utilizado na cláusula WHERE, retornará apenas o valor da menor comissão armazenada na tabela. Dessa forma, apenas os vendedores que possuem o valor da comissão igual ao valor retornado neste SELECT terão os seus dados alterados e o valor da sua comissão aumentará: 

MATRÍCULA NOME BAIRRO COMISSÃO DATA ADMISSÃO 
235 Márcio Almeida Tijuca 0.11 2014-08-15 
236 Cláudia Morais Jardins 0.11 2013-09-17 
237 Roberta Martins Copacabana 0.11 2017-03-18 
238 Péricles Alves Santo Amaro 0.11 2016-08-21 

Como a chave primária garante segurança ao atualizar e deletar dados em SQL? 

Uma outra forma de garantir que apenas os dados desejados sofram alterações é a criação de uma chave primária na tabela. 

A chave primária, ou Primary key (PK) é o dado que pode ser utilizado como um identificador único de um registro em uma tabela no banco de dados. 

Se definirmos que o campo CPF  será a chave primária da tabela de clientes, estamos definindo que este campo receberá apenas valores únicos. Ao utilizarmos este campo como uma condição no momento de executar uma consulta com as cláusulas DELETE ou UPDATE, garantimos que apenas o registro que possui aquele dado será alterado. 

Conclusão 

Como estudamos neste artigo, as cláusulas DELETE e UPDATE são muito importantes na manipulação de um banco de dados, pois, através delas, conseguimos atualizar ou excluir dados de uma tabela. 

Também entendemos os riscos que corremos ao utilizar estas cláusulas e como podemos evitar que, ao executar comandos de modo não recomendado, ocorram  perdas de dados em massa em um  banco de dados. 

Portanto, podemos utilizar estas cláusulas em diversas consultas, assim como utilizar outros recursos disponibilizados pela linguagem SQL para garantir que não haja perda de dados. 

Você gostaria de conhecer outros recursos da linguagem SQL? 

Então, vem estudar com a gente nas nossas formações de SQL e bancos de dados: 

Créditos: 

Escrita: 

Avalie este artigo

Danielle Oliveira
Danielle Oliveira

Danielle é formada em Sistemas de Informação. Fez parte do Scuba Team. Atualmente é instrutora de Data Science, nas áreas de Banco de dados, Business Intelligence e NoSQL. É apaixonada por livros, música e tecnologia.

Veja outros artigos sobre Data Science