Delete (SQL)
Na linguagem de consulta estruturada de banco de dados (SQL), a instrução DELETE remove um ou mais registros de uma tabela. Um subconjunto pode ser definido para exclusão usando uma condição, caso contrário, todos os registros serão removidos.[1] Alguns SGBDs, como o MySQL, permitem a exclusão de linhas de várias tabelas com uma instrução DELETE (isso às vezes é chamado DELEÇÃO de várias tabelas).
Uso
[editar | editar código-fonte]A instrução DELETE
segue a sintaxe:
DELETE
FROM
nome_da_tabela [WHERE
condição];
Todas as linhas que correspondam à condição WHERE
serão removidas da tabela. Se a cláusula WHERE
for omitida, todas as linhas da tabela serão removidas. A instrução DELETE
deve, portanto, ser usada com cautela.
A instrução DELETE
não retorna nenhuma linha, isto é, não irá gerar um conjunto de resultados.
A execução de uma instrução DELETE
pode provocar a execução de gatilhos que podem causar exclusões em outras tabelas. Por exemplo, se duas tabelas são vinculadas por uma chave estrangeira e as linhas da tabela referenciada são excluídas, é comum que as linhas na tabela de referência também precisem ser excluídas para manter a integridade referencial.
Exemplos
[editar | editar código-fonte]Exclui linhas da tabela tortas, cuja coluna sabor seja igual a Bacuri:
DELETE FROM tortas
WHERE sabor='Bacuri';
Exclui linhas em arvores, se o valor da altura for menor que 80.
DELETE FROM arvores
WHERE altura < 80;
Exclui todas as linhas de minha_tabela:
DELETE FROM mminha_tabela;
Exclui linhas de minha_tabela usando uma sub-consulta na condição where:
DELETE FROM minha_tabela
WHERE id IN (
SELECT id
FROM minha_tabela2
);
Exclui linhas de minha_tabela usando uma lista de valores:
DELETE FROM minha_tabela
WHERE id IN (
valor1,
valor2,
valor3,
valor4,
valor5
);
- ↑ «SQL Delete Statement». w3schools.com