# Como remover dados de tabelas com PostgreSQL DELETE

Ao usar o comando PostgreSQL `DELETE`, é possível remover dados de uma tabela. Ele também pode ser refinado com condições para especificar a exclusão de linhas individuais. Como as exclusões no PostgreSQL são irreversíveis, é importante ter cuidado ao usar esse comando.

## O que é o comando PostgreSQL `DELETE`?

O comando `DELETE` do PostgreSQL é usado para **excluir entradas de uma tabela**. Com a cláusula `WHERE`, o usuário especifica as linhas que deseja excluir. Sem a inclusão dessa cláusula, todos os dados da tabela serão removidos **permanentemente**. Por esse motivo, use o comando com cautela.

## Qual é a sintaxe do comando PostgreSQL `DELETE`?

A sintaxe básica do comando PostgreSQL `DELETE` é a seguinte:

```postgresql
DELETE FROM nome_tabela
WHERE [condição];
```

O comando `DELETE FROM` inicia a exclusão das linhas da tabela definida. A cláusula `WHERE` permite especificar quais linhas devem ser removidas. Para implementar múltiplas condições, use `AND` ou `OR`.

Nota Antes de excluir os dados que deseja, certifique-se de ter um backup atualizado do seu banco de dados. Você também pode **realizar a operação** de exclusão dentro de uma transação. Isso ajudará a prevenir potenciais perdas acidentais de dados, caso o comando seja executado incorretamente.

## Como excluir os dados de uma tabela com PostgreSQL `DELETE`

Para entendermos como o comando PostgreSQL `DELETE` funciona, vamos analisar um exemplo prático. Primeiro, usaremos o comando [PostgreSQL `CREATE TABLE`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-create-table/) para criar uma tabela chamada “lista\_clientes”. Em seguida, vamos preenchê-la usando [PostgreSQL `INSERT INTO`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-insert-into/). A tabela possui três colunas (`id`, `nome` e `cidade`) e contém quatro linhas de dados:

```postgresql
|id|nome|cidade|
|-|-|-|
|1|Helena|Campinas|
|2|Silvana|Santos|
|3|Marcela|Guarulhos|
|4|Helena|Osasco|
```

Ao usar o comando PostgreSQL `DELETE` sem adicionar uma condição, todos os dados da tabela serão excluídos. A estrutura da tabela em si, no entanto, não será removida. A sintaxe do comando é a seguinte:

```postgresql
DELETE FROM lista_clientes;
```

## Como excluir uma linha no PostgreSQL com `DELETE`

Em muitos casos, é necessário excluir **somente uma linha**. Para fazer isso, é preciso incluir a cláusula `WHERE`. Por exemplo, imagine que você queira remover a Silvana (id número `2`) da lista. Nesse caso, use o seguinte código:

```postgresql
DELETE FROM lista_clientes
WHERE id = 2;
```

### Como especificar uma linha usando múltiplas condições

Se você estiver trabalhando com tabelas grandes, existe a possibilidade de que algumas entradas sejam duplicadas. Para garantir que apenas uma linha será excluída, use **múltiplas condições** com o comando PostgreSQL `DELETE`. Na tabela anterior, duas clientes se chamavam Helena, mas queremos excluir apenas a segunda entrada. Para fazer isso, combine duas condições:

```postgresql
DELETE FROM lista_clientes
WHERE nome = 'Helena'
AND id >= 3;
```

O comando excluirá todas as linhas com o nome Helena cujo `id` é maior ou igual a `3`. Como a primeira entrada contendo Helena tem um `id` inferior a `3`, ela permanecerá no banco de dados após a execução do comando de remoção.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-delete/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-delete/) for AI/LLM consumption.