Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Declaração DELETE do MySQL

A instrução `DELETE` no MySQL é usada para remover permanentemente as linhas de uma tabela. Ele permite a exclusão de registros específicos com base em condições ou de todos os registros se nenhuma condição for especificada. Quando os dados são excluídos sem um backup, eles não podem ser recuperados.

Uso

A instrução `DELETE` é usada para remover permanentemente os dados de uma tabela do banco de dados. É fundamental para o gerenciamento de dados, permitindo a limpeza de informações desatualizadas ou incorretas.

sql
DELETE FROM table_name
[WHERE condition];

Nessa sintaxe, `DELETE FROM table_name` especifica a tabela da qual os registros serão excluídos. A cláusula `WHERE` é crucial para especificar condições para direcionar linhas específicas; se você a omitir, resultará na exclusão de todas as linhas da tabela.

Exemplos

1. Eliminação básica

sql
-- Delete all records from the employees table
DELETE FROM employees;

Esse exemplo exclui todos os registros da tabela `employees`, deixando a estrutura da tabela intacta, mas sem dados.

2. Exclusão condicional

sql
-- Delete records where order_status is 'canceled'
DELETE FROM orders
WHERE order_status = 'canceled';

Essa consulta remove apenas os registros da tabela `orders` em que o `order_status` é 'canceled', limpando efetivamente os dados indesejados.

3. Exclusão com subconsulta

sql
-- Delete products that are listed in the obsolete_products table
DELETE FROM products
WHERE product_id IN (SELECT product_id FROM obsolete_products);

Esse exemplo exclui entradas da tabela `products` em que o `product_id` corresponde aos da tabela `obsolete_products`, utilizando uma subconsulta para lidar com relacionamentos de dados mais complexos.

Dicas e práticas recomendadas

  • Sempre faça backup dos dados. Antes de executar um `DELETE`, certifique-se de que haja um backup dos dados para evitar a perda acidental de dados.
  • Use a cláusula `WHERE` com cautela. Sempre verifique novamente as condições `WHERE` para evitar exclusões não intencionais.
  • Teste primeiro com o SELECT. Execute uma consulta `SELECT` correspondente para verificar quais linhas serão afetadas pelo `DELETE`.
  • Limite as exclusões para grandes conjuntos de dados. Considere a possibilidade de usar o `LIMIT` ou o processamento em lote para gerenciar as exclusões em tabelas grandes, a fim de evitar bloqueios longos e problemas de desempenho.
  • Use as transações. Ao excluir de várias tabelas, agrupe as exclusões em uma transação para manter a integridade dos dados. Por exemplo:
sql
START TRANSACTION;
DELETE FROM table1 WHERE condition;
DELETE FROM table2 WHERE condition;
COMMIT;
  • Analise com o EXPLAIN. Use `EXPLAIN` para entender como a exclusão será executada, o que ajuda a otimizar o desempenho de consultas complexas.
  • Considere os principais impactos estrangeiros. Tenha em mente as restrições de chave estrangeira e configure exclusões em cascata, se necessário, para manter a integridade referencial.
  • Entenda o comportamento do AUTO_INCREMENT. A exclusão de linhas pode não redefinir os valores de `AUTO_INCREMENT`, a menos que a tabela seja truncada.

Essas práticas ajudam a garantir que o gerenciamento de dados com operações `DELETE` seja eficiente e seguro.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça