SQL DELETE: como usar o comando para excluir dados?

O SQL DELETE é o comando usado para excluir dados de uma tabela. Com essa ação, você remove registros específicos ou todos os dados, dependendo de como escrever a consulta.

Esse tipo de ação parece simples, mas exige atenção. Um pequeno erro no filtro pode apagar mais informações do que o esperado.

No dia a dia, quem trabalha com dados usa essa instrução para limpar bases, corrigir inconsistências e manter tudo organizado. Por isso, entender seu funcionamento evita problemas.

Neste artigo, você vai ver como usar o DELETE na prática. Vamos passar pela sintaxe, exemplos reais e diferenças em relação a outros comandos.

Se a ideia é aprender de forma direta e segura, vale seguir a leitura até o final.

O que o comando SQL DELETE faz?

O comando SQL DELETE exclui registros de uma tabela dentro do banco de dados. Essa ação atua diretamente nas linhas, removendo os dados que você indicar, sem mexer na estrutura da tabela.

Dessa forma, você pode apagar informações específicas, como um cliente duplicado ou um pedido cancelado, de forma controlada. Mesmo que você remova todos os registros, a tabela continua existindo normalmente, com suas colunas e configurações intactas. Ela só fica vazia.

Esse tipo de comando aparece com frequência na rotina de quem trabalha com dados. Em bancos como o MySQL ou o SQL Server, é comum usar o DELETE para manter a base organizada e atualizada ao longo do tempo.

Aproveite e confira no vídeo os 10 comandos em SQL que você precisa aprender: 

Sintaxe básica do SQL DELETE com exemplos

A sintaxe do SQL DELETE define como você indica quais registros devem ser removidos de uma tabela.

De forma geral, a estrutura segue este padrão: ‘DELETE FROM nome_da_tabela WHERE condição;’.

A cláusula WHERE é responsável por filtrar quais linhas serão excluídas. Sem esse filtro, a exclusão afeta todos os registros da tabela.

Em bancos como o MySQL e o PostgreSQL, essa estrutura é padrão, o que facilita o uso no dia a dia.

Como deletar um registro específico

Para excluir um registro específico, use o WHERE com uma condição que identifique exatamente a linha desejada.

Exemplo: ‘DELETE FROM clientes WHERE id = 10;’.

Nesse caso, apenas o registro com id igual a 10 será removido. Esse tipo de uso é comum quando a tabela possui uma chave primária, que identifica cada linha de forma única.

Como deletar todos os dados de uma tabela

Para apagar todos os dados de uma tabela, basta executar o comando sem a cláusula WHERE: ‘DELETE FROM clientes;’.

Esse formato remove todas as linhas da tabela, mantendo apenas a estrutura. O ponto de atenção está justamente na ausência de filtro, já que todos os registros serão excluídos sem distinção.

Por isso, esse tipo de operação exige cuidado. Em ambientes que utilizam bancos como o Oracle Database, é comum validar a instrução antes da execução para evitar perda total de dados.

Diferença entre DELETE, TRUNCATE e DROP

DELETE, TRUNCATE e DROP são comandos usados para remover dados ou estruturas em um banco, mas cada um atua de forma diferente e com impactos distintos.

Na prática, a escolha entre essas opções depende do que você quer remover. Em bancos como o MySQL e o PostgreSQL, entender essa diferença evita erros sérios no ambiente de produção.

DELETE

  • Remove registros específicos ou todos, dependendo do uso de WHERE
  • Mantém a estrutura da tabela
  • Permite controle mais preciso
  • Pode ser mais lento em grandes volumes

TRUNCATE

  • Remove todos os registros da tabela
  • Mantém a estrutura
  • Não permite uso de WHERE
  • Executa de forma mais rápida, pois não apaga linha por linha

DROP

  • Remove toda a tabela
  • Apaga estrutura, dados, índices e relacionamentos
  • Não há retorno após a execução
  • Exige recriação da tabela caso necessário

Exemplo prático

Se você precisa apagar apenas um cliente específico, faz sentido usar ‘DELETE FROM clientes WHERE id = 10;’.

Se a ideia é limpar completamente uma tabela de logs, o TRUNCATE costuma ser mais adequado.

Agora, se a tabela não será mais usada, o DROP remove tudo de forma definitiva.

Cada comando tem seu contexto. O uso correto evita perda de dados e mantém o banco organizado.

Ícone SQLSQL Impressionador

Domine a linguagem mais importante do Mundo para quem trabalha com Dados, seja para se destacar na sua empresa atual, para conseguir um diferencial em processos seletivos ou até mesmo para entrar em áreas de dados.

Começar agoraSeta para a direita
Fundo SQLTelas SQL
Luz SQL

Como usar DELETE com junções e subconsultas

Você pode usar DELETE com junções e subconsultas quando a exclusão depende de dados relacionados em outras tabelas.

Esse tipo de operação aparece em bases relacionais, nas quais tabelas como clientes, pedidos e pagamentos se conectam por IDs. A ideia é remover registros com base em uma regra que não está apenas na tabela principal.

Exclusão com JOIN

A exclusão com JOIN remove registros a partir do relacionamento entre duas ou mais tabelas.

Exemplo: ‘DELETE clientes FROM clientes INNER JOIN pedidos ON clientes.id = pedidos.cliente_id WHERE pedidos.status = “cancelado”;’.

Nesse caso, o banco exclui clientes relacionados a pedidos cancelados. A sintaxe pode mudar conforme o banco usado, por isso vale conferir o padrão do MySQL, SQL Server ou PostgreSQL antes de executar.

Exclusão com subquery

A exclusão com subquery usa uma consulta interna para definir quais registros serão removidos.

Exemplo: ‘DELETE FROM clientes WHERE id IN (SELECT cliente_id FROM pedidos WHERE status = “cancelado”);’.

Aqui, a subconsulta identifica os clientes com pedidos cancelados. Depois, o DELETE remove os registros correspondentes na tabela clientes. Esse formato costuma ser mais fácil de ler para quem está começando.

Usando SQL DELETE em MySQL e outros bancos

Tela com código SQL em destaque ao lado de ícones de banco de dados, ilustrando consultas e operações como SQL DELETE aplicadas na manipulação e remoção de dados.

O SQL DELETE funciona de forma muito parecida entre diferentes bancos de dados, mas existem variações na sintaxe dependendo do sistema utilizado.

A estrutura básica ‘DELETE FROM tabela WHERE condição;’ é aceita em praticamente todos os bancos relacionais. Isso inclui o MySQL, o PostgreSQL e o SQL Server.

As diferenças aparecem em cenários mais avançados. No MySQL, por exemplo, é possível usar DELETE com JOIN diretamente, como em ‘DELETE tabela1 FROM tabela1 JOIN tabela2 ON condição;’. 

Já no PostgreSQL, a mesma lógica costuma ser feita com USING, como em ‘DELETE FROM tabela1 USING tabela2 WHERE condição;’.

Essas variações não mudam o conceito do comando, mas exigem atenção na hora de adaptar consultas entre bancos diferentes. 

Boas práticas para excluir dados com segurança

Para excluir dados com segurança, valide a operação antes de executar o DELETE, principalmente em bases de produção.

Antes de apagar qualquer registro, rode um SELECT com o mesmo filtro. Por exemplo: ‘SELECT * FROM clientes WHERE id = 10;’. Assim, você confere quais linhas serão afetadas antes de usar ‘DELETE FROM clientes WHERE id = 10;’.

Também vale criar backup, usar transações quando o banco permitir e evitar comandos sem filtro. Em ferramentas como MySQL Workbench, SQL Server Management Studio e DBeaver, revisar a consulta antes da execução ajuda a reduzir erros simples, mas perigosos.

Erros comuns ao usar o comando DELETE

Os erros mais comuns ao usar DELETE envolvem filtros ausentes, condições erradas e falta de validação antes da execução.

O caso mais perigoso é esquecer o WHERE. A instrução ‘DELETE FROM clientes;’ remove todos os registros da tabela, não apenas uma linha específica.

Outro erro frequente é usar uma condição ampla demais, como ‘DELETE FROM pedidos WHERE status = “cancelado”;’, sem conferir quantos registros têm esse status.

Também é comum filtrar pela coluna errada, confundir IDs parecidos ou executar a consulta no banco incorreto. Por isso, antes de apagar dados, confirme a tabela, o ambiente e o resultado esperado.

Como aprender SQL na prática e evitar erros no dia a dia

A forma mais direta de aprender SQL e evitar erros é praticar com exercícios reais e testar comandos no dia a dia.

Só teoria não resolve. Quando você executa consultas, valida resultados e entende o impacto de cada comando, o aprendizado fica mais sólido. Isso reduz erros comuns, como exclusões sem filtro ou consultas mal estruturadas.

No SQL Impressionador, na Hashtag Treinamentos, o foco é a prática do início ao avançado. No curso você aprende executando, com exemplos próximos da rotina profissional e, ao final, recebe um certificado reconhecido em todo o Brasil!

Se quiser acelerar esse processo e ganhar confiança no uso do SQL, conheça o curso completo e comece a aplicar hoje mesmo.

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Posts mais recentes de SQL

Posts mais recentes da Hashtag Treinamentos