O UPDATE permite a alteração de um ou mais dados armazenados em uma tabela.
Visão geral
Considere a tabela produtos presente na Tabela 1, onde precisamos modificar o nome do produto com id=2, por ter sido inserido com erros de ortografia.
id | descricao | preco | categoria |
1 | Papel oficio (c/100 folhas) | 4.50 | 2 |
2 | Laapis preto (unid) | 0.50 | 1 |
3 | Xerox (1 folha PB) | 0.25 | 4 |
Para resolver esta falha de escrita podemos executar o comando SQL a seguir:
UPDATE
produtos
SET
descricao = 'Lápis preto (unid)'
WHERE
id = 2
Na linha 2 especificamos a tabela que sofrerá alterações. Em seguida, na linha 4 especificamos os valores que sofrerão as mudanças, ou seja, { Lápis preto (unid) } e definimos ainda um novo valor para o produto. Em seguida utilizamos a condição WHERE para especificar o item que será modificado através do filtro {id = 2}.
Sintaxe
UPDATE [ tabela ]
SET
[ coluna_1 ] = [ novo_valor_1 ],
[ coluna_2 ] = [ novo_valor_2 ]
WHERE
[ condicao-de-busca ]
ORDER [ ordem ]
LIMIT [ limite ];
Não se preocupe com a cláusula ORDER neste momento, ela será ensinada mais a frente. Ela foi inserida aqui para que você conheça a sintaxe do comando UPDATE.
Na prática
Exemplo 1
É importante lembrar que a cláusula WHERE serve para filtrar um item em uma tabela, criando condições para que um item específico que está sendo procurado seja encontrado pelo banco de dados. Ele também permite o uso de operadores como OR, AND e NOT durante a filtragem de resultados, como pode ser visto no exemplo abaixo:
UPDATE
produtos
SET
descricao = 'Resma de ofício com 500 folhas',
preco = 18.50
WHERE
id = 1 OR preco = 17.50
No exemplo acima a condição para a alteração dos dados é o id do produto ser igual a 1. Caso não exista um item com este id, ele buscará os itens com preço igual a 17.50.
O WHERE, com os operadores condicionais, permite maior flexibilidade ao buscar um item específico no banco de dados.
Exemplo 2
Para este exemplo, considere a tabela funcionario (Tabela 2).
ID | Nome | Departamento |
1 | Pedro Henrique | Compras |
2 | Lucas da Silva | Administrativo |
3 | Luana Gabriela | Comercial |
4 | Renato Lazuna | Administrativo |
5 | Rafaela Barrosa | Administrativo |
6 | Arline da Costa | Comercial |
7 | Giseli Pascoa | Comercial |
8 | Renan Pereira | Compras |
A empresa solicitou que os funcionários "Luana Gabriela" (id = 3) e "Arline da Costa" (id = 6) sejam transferidas do setor "Comercial" para o setor "Supervisão Comercial". Para isso, podemos utilizar a query abaixo:
UPDATE funcionario
SET departamento = 'Supervisão Comercial'
WHERE id IN (3, 6)
No comando acima, utilizamos a cláusula WHERE para definir que seja atualizado apenas os registros onde o id esteja dentro (IN) dos citados entre parênteses. Neste caso entre parênteses estão os id 3 e 6.
Observe o resultado da query abaixo, na Tabela 4.
ID | Nome | Departamento |
1 | Pedro Henrique | Compras |
2 | Lucas da Silva | Administrativo |
3 | Luana Gabriela | Supervisão Comercial |
4 | Renato Lazuna | Administrativo |
5 | Rafaela Barrosa | Administrativo |
6 | Arline da Costa | Supervisão Comercial |
7 | Giseli Pascoa | Comercial |
8 | Renan Pereira | Compras |