SQL: DELETE
O DELETE permite que uma ou mais linhas sejam excluídas de uma tabela do banco de dados.
O comando DELETE no SQL permite que uma ou mais linhas sejam excluídas de uma tabela do banco de dados.
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 recueprar 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 4 e 5 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 os projetos que não possuam comentários, dessa forma, utilizaremos uma subconsulta dentro do comando DELETE. Para isso podemos utilizar a query abaixo:
DELETE
FROM
projetos P
WHERE
P.id NOT IN
(
SELECT
C.id_projeto
FROM
comentario C
WHERE
C.id_projeto = P.id
)
No trecho de código acima, colocamos como condição para a remoção dos dados, o ID do projeto não estar presente no resultado da subquery (Linhas 7 a 12), que é responsável por listar todos projetos com comentários.
É importante lembrar que como o WHERE é opcional, ou seja, caso ele seja removido da query no momento da exclusão, todos os dados da tabela serão apagados.
PRÁTICA EM VÍDEO