O comando DELETE no SQL permite que uma ou mais linhas sejam excluídas de uma tabela do banco de dados.
Guia do artigo:
Visão geral
Considere a tabela produtos da Tabela 1, onde precisamos excluir o produto com id igual a 3.
id | descricao | preco | categoria |
---|---|---|---|
1 | Papel oficio (c/100 folhas) | 4.50 | 2 |
2 | Lápis preto (unid) | 0.50 | 1 |
3 | Xerox (1 folha PB) | 0.25 | 4 |
Para executar este comando SQL podemos utilizar uma query como no exemplo abaixo:
DELETE FROM
produtos
WHERE
id = 3
Na linha 2 estamos informando a tabela onde será executado a query e em seguida, nas linhas 3 e 4 informamos a condição para que uma linha específica seja removida, ou seja, ter o id = 3. Lembrando que o DELETE também permite o uso de operadores condicionais da mesma forma como vimos com o UPDATE, visto anteriormente.
Sintaxe
DELETE FROM
[ tabela ]
WHERE
[ condicao_de_busca ];
Na prática
Exemplo 1
Para o exemplo a seguir, considere a estrutura de tabelas abaixo, onde temos a tabela projeto (Tabela 2), responsável por manter todos os projetos da empresa, e a tabela comentario (Tabela 3), responsável por manter todos os comentários referentes aos projetos cadastrados no banco de dados.
ID | Titulo | Data |
---|---|---|
7 | Criando uma aplicação com React | 2018-04-10 |
8 | API RestFUL com Lumen | 2018-05-10 |
9 | Consumindo uma API RestFUL com Laravel | 2018-05-20 |
10 | Documentação SQL | 2018-05-21 |
ID | Comentario | Data | id_projeto |
---|---|---|---|
1 | Muito legal essa aplicação! Adorei usar o React | 2018-04-10 | 7 |
2 | React é muito simples! Curti o projeto! parabéns! | 2018-05-10 | 7 |
3 | Muito top! | 2018-05-20 | 9 |
4 | Parabéns aos envolvidos! | 2018-05-20 | 9 |
5 | Muito legal, sempre gostei do Laravel. | 2018-05-20 | 9 |
6 | Interessante a forma de recuperar as informações. Não sabia. Gostei! | 2018-05-21 | 9 |
7 | Consigo fazer o mesmo com CodeIgniter? | 2018-05-22 | 9 |
8 | React é apenas JavaScript, há uma API bem pequena para aprender, apenas algumas funções e como usá-las. Depois disso, suas habilidades em JavaScript serão o que te farão um melhor desenvolvedor React | 2018-05-23 | 7 |
Suponhamos que seja necessário deletar o comentario de ID 8. Para isso podemos utilizar a query abaixo:
DELETE
FROM comentario
WHERE id = 8
A query acima é responsável por remover da tabela comentario o ID 8, pois na Linha 3 utilizamos o WHERE para frizar essa condição.
Exemplo 2
Como outro exemplo, podemos utilizar a mesma estrutura de tabelas do exemplo anterior, porém, dessa vez queremos remover todos comentários do projeto "Criando uma aplicação com React", ou seja, todo comentário onde id_projeto seja igual a 7. Para isso podemos utilizar a query abaixo:
DELETE
FROM comentario
WHERE id_projeto = 7
A query acima é responsável por remover da tabela todos os comentários onde id_projeto for igual a 7.
Cuidado com o comando DELETE
A cláusula WHERE como vimos, serve para identificar qual registro deve ser removido do banco de dados. WHERE é opcional , ou seja, não é preciso dele para que o comando DELETE funcione. Veja um exemplo do comando DELETE sem a cláusula WHERE:
DELETE
FROM comentario
O comando acima vai executar, porém como não existe uma cláusula identificando o que deve ser removido, TODOS os registros da tabela comentario serão excluídos.