# UPDATE MariaDB: Como atualizar entradas em tabelas

Com o comando `UPDATE` no MariaDB, você altera dados existentes em uma tabela, garantindo informações consistentes e atualizadas no seu banco de dados.

## O que faz o comando `UPDATE` no MariaDB?

O comando `UPDATE` no [MariaDB](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/banco-de-dados-mariadb/) altera os dados armazenados em uma ou mais colunas de uma tabela existente. Diferente de comandos como `INSERT` ou `DELETE`, o `UPDATE` ajusta dados já existentes sem criar novas linhas ou remover as atuais. Por isso, é adequado para todas as situações em que os dados mudam regularmente, mas as estruturas subjacentes permanecem iguais.

Em aplicações que utilizam banco de dados, o `UPDATE` é frequentemente usado em segundo plano, por exemplo, ao editar perfis de usuário ou atualizar dados de transações. Cenários típicos incluem corrigir entradas incorretas, atualizar estoques ou definir status em um processo de pedido. É fundamental que você determine exatamente quais colunas devem ser ajustadas. Caso contrário, a alteração afetará toda a tabela. Por isso, é essencial aplicar filtros precisos ao realizar atualizações, garantindo a integridade dos dados.

## Sintaxe do comando `UPDATE` no MariaDB

A sintaxe básica do comando `UPDATE` no MariaDB consiste em três partes: a indicação da tabela, a parte `SET` com as colunas a serem modificadas, e uma cláusula opcional `WHERE` para limitar as linhas afetadas.

```sql
UPDATE nome_da_tabela
SET coluna1 = valor1, coluna2 = valor2
WHERE condição;
```

## Parâmetros e argumentos no comando `UPDATE` no MariaDB

O comando `UPDATE` no MariaDB aceita vários **parâmetros** que permitem controlar exatamente quais dados serão alterados e de que forma. Os principais componentes são o nome da tabela, `SET`, `WHERE`, `ORDER BY` e `LIMIT`.

- `nome_da_tabela`: Nome da tabela onde você deseja alterar os dados.
- `SET`: Define uma ou mais colunas que receberão novos valores. Também é possível usar funções ou operações matemáticas, por exemplo, `SET views = views + 1`.
- `WHERE`: Filtra as linhas afetadas com base em uma condição. Sem `WHERE`, o MariaDB altera todas as linhas da tabela.
- `ORDER BY`: Ordena as linhas antes da atualização. Isso é importante especialmente quando você usa `LIMIT`.
- `LIMIT`: Limita o número de linhas alteradas, por exemplo, às primeiras cinco correspondências.
- Cláusulas `JOIN`: Em cenários mais complexos, você pode combinar `UPDATE` com `JOIN` para manipular dados de várias tabelas. Essa variação permite alterações condicionais baseadas em conteúdos de tabelas relacionadas.
- Subconsultas (`SUBSELECT`): Você pode usar subconsultas dentro das cláusulas `SET` ou `WHERE` para obter valores dinâmicos de outras tabelas.
- Funções e operadores: Dentro do `SET`, é possível usar funções, operações matemáticas, condições (`IF()`) ou concatenações (`CONCAT()`) para gerar conteúdos dinamicamente.

## Exemplos de uso do comando `UPDATE` no MariaDB

O `UPDATE` no MariaDB é utilizado em diversos cenários práticos. Com ele, você pode corrigir registros incorretos, atualizar informações que mudam com o tempo ou definir novos valores automaticamente quando o status de um processo é alterado. A seguir, apresentamos exemplos práticos do uso do comando `UPDATE`.

### Atualizar um único valor

A cláusula `WHERE` garante que apenas um registro específico será alterado. Neste exemplo, alteramos o e-mail do cliente com o ID 42.

```sql
UPDATE customers
SET email = 'new.email@example.com'
WHERE customer_id = 42;
```

### Alterar várias colunas ao mesmo tempo

Aqui, ajustamos o preço (“price”) e o estoque de um produto. Na coluna `stock`, o valor atual é reduzido em 1, por exemplo, após uma venda.

```sql
UPDATE products
SET price = 19.99, stock = stock - 1
WHERE product_id = 1001;
```

### Atualizar valores em várias linhas

Esta consulta define o status de todos os pedidos como “shipped” (enviado) quando há uma data de envio registrada e o status ainda está como “processing” (em processamento).

```sql
UPDATE orders
SET status = 'shipped'
WHERE shipping_date IS NOT NULL AND status = 'processing';
```

### Atualizar apenas um número específico de linhas

Aqui desativamos os 100 usuários com o login mais antigo no MariaDB. Com `ORDER BY` e `LIMIT` você controla quais linhas serão atualizadas primeiro.

```sql
UPDATE users
SET active = 0
ORDER BY last_login ASC
LIMIT 100;
```

### Comando `UPDATE` com condição `IF()`

A função `IF()` permite criar condições diretamente na cláusula `SET`. No exemplo abaixo, o MariaDB verifica o preço de cada produto. Se o preço for maior que 100, o desconto (“discount”) será 15%; caso contrário, será 5%.

```sql
UPDATE products
SET discount = IF(price > 100, 0.15, 0.05);
```


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/hospedagem/tecnologia-de-hospedagem/update-mariadb/](https://www.ionos.com/pt-br/digitalguide/hospedagem/tecnologia-de-hospedagem/update-mariadb/) for AI/LLM consumption.