Voltar

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
Tabela 1. Tabela produtos

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
Tabela 2. Estrutura da tabela projeto

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
Tabela 3. Estrutura da tabela comentario

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.