MySQL Consulta DELETE: Como excluir uma linha da tabela
⚡ Resumo Inteligente
MySQL A consulta DELETE remove linhas desnecessárias de uma tabela e retorna o número de linhas afetadas. Este recurso explica a sintaxe do DELETE, a filtragem com WHERE, a exclusão de várias linhas com IN e as alternativas mais seguras TRUNCATE e DROP.
O que é a consulta DELETE?
O MySQL EXCLUIR A instrução DELETE é usada para remover linhas desnecessárias de uma tabela de banco de dados. Ela exclui a linha inteira da tabela e retorna a quantidade de linhas excluídas. A instrução DELETE é útil quando você precisa limpar dados temporários ou obsoletos do seu banco de dados.
A consulta DELETE em MySQL É possível remover mais de uma linha de uma tabela em uma única execução. Isso se mostra vantajoso quando se está removendo um grande número de linhas de uma tabela de banco de dados.
Uma vez que uma linha tenha sido excluída, ela não poderá ser recuperada. Sempre faça um backup do banco de dados antes de excluir dados, para que o banco de dados possa ser restaurado e revisado posteriormente, se necessário.
Como excluir uma linha em MySQL
Com o propósito da declaração claro, o próximo passo é a sintaxe. Para excluir uma linha em MySQL, a instrução DELETE FROM é usada:
DELETE FROM `table_name` [WHERE condition];
AQUI:
- EXCLUIR DA `nome_da_tabela` diz o MySQL servidor para remover linhas da tabela especificada.
- [ONDE condição] É opcional e serve para aplicar um filtro que restringe o número de linhas afetadas pela consulta DELETE.
Se o Cláusula WHERE não é usado no MySQL Consulta DELETE, então todos os As linhas de uma determinada tabela serão excluídas.
⚠️ Aviso: Execute o filtro como um SELECT primeiro. Se ele retornar exatamente as linhas que você pretende remover, o DELETE correspondente é seguro. A sintaxe completa está documentada em MySQL Manual de instruções DELETE.
Exemplo de MySQL Apagar Consulta
A próxima seção cria um pequeno conjunto de dados e, em seguida, exclui elementos dele.
Passo 1: Inserir dados de exemplo
Antes de entrarmos em uma discussão mais detalhada sobre a instrução SQL DELETE, vamos inserir alguns dados de exemplo na tabela de filmes para trabalharmos com eles.
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Charlie Chaplin', 1940, 7); INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8); INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);
A execução do script acima adiciona três (3) filmes à tabela de filmes. Antes de prosseguirmos, vamos listar todos os filmes em nossa tabela.
SELECT * FROM `movies`;
A execução do script acima nos dá os seguintes resultados. As três linhas recém-inseridas estão destacadas.
| id_do_filme | título | diretor | ano_de lançamento | Categoria ID |
|---|---|---|---|---|
| 1 | Piratas do Caribe 4 | Rob Marshall | 2011 | 1 |
| 2 | Esquecendo Sarah Marshal | Nicholas Stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Nome Black | Edgar Jimz | 2010 | NULL |
| 5 | As filhinhas do papai | NULL | 2007 | 8 |
| 6 | Anjos e Demonios | NULL | 2007 | 6 |
| 7 | Da Vinci Code | NULL | 2007 | 6 |
| 9 | Honey mooners | John Schultz | 2005 | 8 |
| 16 | 67% culpado | NULL | 2012 | NULL |
| 18 | O Grande Ditador | Charlie Chaplin | 1940 | 7 |
| 19 | filme de exemplo | Anônimo | NULL | 8 |
| 20 | filme 3 | John Brown | 1920 | 8 |
Passo 2: Exclua uma única linha
Suponha que a biblioteca de vídeos Myflix não queira mais alugar "O Grande Ditador" e queira removê-lo do banco de dados. O ID do filme é 18, então o script abaixo exclui essa linha.
DELETE FROM `movies` WHERE `movie_id` = 18;
Executando o script acima em MySQL Bancada de Trabalho A consulta ao banco de dados do Myflix exclui o filme com ID 18 da tabela.
Vamos agora verificar o estado atual da tabela de filmes.
SELECT * FROM `movies`;
| id_do_filme | título | diretor | ano_de lançamento | Categoria ID |
|---|---|---|---|---|
| 1 | Piratas do Caribe 4 | Rob Marshall | 2011 | 1 |
| 2 | Esquecendo Sarah Marshal | Nicholas Stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Nome Black | Edgar Jimz | 2010 | NULL |
| 5 | As filhinhas do papai | NULL | 2007 | 8 |
| 6 | Anjos e Demonios | NULL | 2007 | 6 |
| 7 | Da Vinci Code | NULL | 2007 | 6 |
| 9 | Honey mooners | John Schultz | 2005 | 8 |
| 16 | 67% culpado | NULL | 2012 | NULL |
| 19 | filme de exemplo | Anônimo | NULL | 8 |
| 20 | filme 3 | John Brown | 1920 | 8 |
OBSERVAÇÃO:
- O filme com o ID 18 não é mais retornado no conjunto de resultados da consulta.
- Não é possível excluir uma única coluna de uma tabela com o comando DELETE. A instrução remove uma linha inteira. Para limpar um campo, use um operador de exclusão (``). ATUALIZAR consulta Isso define a coluna como NULL.
Etapa 3: Exclua várias linhas com IN
Digamos que temos uma lista de filmes que queremos excluir. Em vez de executar uma instrução para cada linha, podemos combinar a cláusula WHERE com o operador IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
A execução do script acima exclui os filmes com IDs 20 e 21 da nossa tabela de filmes em uma única passagem.
DELETE vs TRUNCATE vs DROP in MySQL
DELETE não é a única maneira de remover dados de MySQL. Iniciantes costumam recorrer a ele quando um comando mais rápido seria mais adequado, então a tabela abaixo compara os três comandos de remoção.
| Característica | EXCLUIR | TRUNCAR | GOTA |
|---|---|---|---|
| Tipo de comando | DML | DDL | DDL |
| Cláusula WHERE | Suportado | Não suportado | Não suportado |
| O que foi removido? | Linhas selecionadas | Todas as linhas | Estrutura de linhas e tabelas |
| Rollback | Possível dentro de uma transação | Não é possível (commit implícito) | Não é possível (commit implícito) |
| INCREMENTO AUTOMÁTICO | O contador é mantido. | O contador é reiniciado para o valor inicial. | O balcão é removido juntamente com a mesa. |
| Velocidade em mesas grandes | Lento (linha por linha) | Muito rápido | Muito rápido |
Use DELETE quando precisar de um filtro ou da possibilidade de reverter a ação. TABELA TRUNCAR Use DROP quando quiser esvaziar uma tabela rapidamente e redefinir seu contador AUTO_INCREMENT. Use DROP somente quando a própria tabela não for mais necessária, pois ele remove a definição juntamente com os dados.

