O que é a consulta DELETE?
O comando DELETE do MySQL é usado para excluir linhas que não são mais necessárias nas tabelas do banco de dados. Ele exclui toda a linha da tabela e retorna a contagem de linhas excluídas. O comando Delete é útil para excluir dados temporários ou obsoletos de seu banco de dados.
A consulta Delete no MySQL pode excluir mais de uma linha de uma tabela em uma única consulta. Isso prova ser vantagens ao remover um grande número de linhas de uma tabela de banco de dados.
Depois que uma linha Delete na linha MySQL foi excluída, ela não pode ser recuperada. Portanto, é altamente recomendável fazer backups do banco de dados antes de excluir quaisquer dados do banco de dados. Isso pode permitir que você restaure o banco de dados e visualize os dados posteriormente, caso seja necessário.
Como excluir uma linha no MySQL
Para excluir uma linha no MySQL, a instrução DELETE FROM é usada:
DELETE FROM `table_name` [WHERE condition];
AQUI
- DELETE FROM `table_name` diz ao servidor MySQL para remover linhas da tabela…
- [Condição WHERE] é opcional e é usado para colocar um filtro que restringe o número de linhas afetadas pela consulta de linha MySQL DELETE.
Se a cláusula WHERE não for usada na consulta DELETE do MySQL, todas as linhas em uma determinada tabela serão excluídas.
Exemplo de consulta de exclusão do MySQL
Antes de entrarmos em mais detalhes sobre a discussão do comando DELETE, vamos inserir alguns dados de amostra na tabela de filmes para trabalhar.
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 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);
Executar o script acima adiciona três (3) filmes à tabela de filmes. Antes de prosseguirmos em nossa lição, vamos colocar todos os filmes em nossa tabela. O script mostrado abaixo faz isso.
SELECT * FROM `movies`;
Executar o script acima nos dá os seguintes resultados.
movie_id | itle | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
18 | The Great Dictator | Chalie Chaplie | 1920 | 7 |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
Vamos supor que a videoteca do Myflix não deseje mais alugar "O Grande Ditador" para seus membros e que eles queiram removê-lo do banco de dados. Seu filme id é 18, podemos usar o script mostrado abaixo para deletar sua linha da tabela de filmes.
DELETE FROM `movies` WHERE `movie_id` = 18;
Executar o script acima no MySQL WorkBench no Myflix exclui o filme com id 18 da tabela do banco de dados.
Vamos ver o status atual da tabela de filmes.
SELECT * FROM `movies`;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
NOTA:
- o filme com id 18 não foi retornado no conjunto de resultados da consulta.
- você não pode excluir uma única coluna de uma tabela. Você pode excluir uma linha inteira.
Digamos que temos uma lista de filmes que queremos excluir. Podemos usar a cláusula WHERE junto com IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Executar o script acima exclui filmes com IDs 20 e 21 de nossa tabela de filmes.
Resumo
- O comando delete é usado para remover dados que não são mais necessários de uma tabela.
- A "cláusula WHERE" é usada para limitar o número de linhas afetadas pela consulta DELETE.
- Uma vez que os dados foram excluídos, eles não podem ser recuperados, portanto, é altamente recomendável fazer backups antes de excluir os dados.