SQL DELETE: como usar o comando para excluir dados?
O que você vai ver hoje?
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.
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

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!
Posts mais recentes de SQL
- UPDATE em SQL: guia completo para usar o comando sem cometer errosUPDATE em SQL: entenda como atualizar dados com segurança, sintaxe, exemplos práticos e cuidados para evitar erros comuns.
- SQL DELETE: como usar o comando para excluir dados?SQL DELETE: entenda como excluir registros, usar a sintaxe correta e evitar erros ao remover dados de tabelas em bancos SQL.
- Guia completo para desenvolvedor SQL: o que faz, salário e como aprenderConheça as funções do desenvolvedor SQL, salários médios, como começar na área e como está o atual mercado de trabalho.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.








