O comando UPDATE é utilizado para alterar dados já existentes em uma tabela do banco de dados.
Ele faz parte da linguagem DML (Data Manipulation Language) e permite modificar um ou vários registros.
UPDATE nome_tabela
SET coluna = valor
WHERE condição;
CREATE TABLE clientes (
id INT PRIMARY KEY,
nome VARCHAR(100),
cidade VARCHAR(100)
);
+----+--------+-----------+
| ID | Nome | Cidade |
+----+--------+-----------+
| 1 | Carlos | São Paulo |
| 2 | Ana | Rio |
+----+--------+-----------+
Alterando a cidade do cliente Carlos:
UPDATE clientes
SET cidade = 'Campinas'
WHERE id = 1;
+----+--------+----------+
| ID | Nome | Cidade |
+----+--------+----------+
| 1 | Carlos | Campinas |
| 2 | Ana | Rio |
+----+--------+----------+
Podemos alterar vários campos simultaneamente.
UPDATE clientes
SET nome = 'Carlos Silva',
cidade = 'Jacareí'
WHERE id = 1;
Uma condição pode atingir vários registros.
UPDATE clientes
SET cidade = 'São José dos Campos'
WHERE cidade = 'Jacareí';
Se o WHERE for omitido, todos os registros serão alterados.
UPDATE clientes
SET cidade = 'Brasil';
Também é possível realizar cálculos durante a atualização.
UPDATE produtos
SET preco = preco * 1.10;
Nesse exemplo todos os preços recebem aumento de 10%.
| UPDATE | INSERT |
|---|---|
| Altera registros existentes | Cria novos registros |
| Modifica dados | Adiciona dados |
| Necessita de registros existentes | Insere novas linhas |
| Erro | Causa |
|---|---|
| Atualizar tudo sem querer | Esquecer o WHERE |
| Valor inválido | Tipo de dado incompatível |
| Registro não encontrado | Condição incorreta |
| Violação de restrição | Quebra de regra do banco |
| Sistema | Exemplo de Atualização |
|---|---|
| E-commerce | Atualizar preço de produtos |
| Escola | Atualizar cadastro de alunos |
| Banco | Atualizar saldo de contas |
| Hospital | Atualizar prontuários |