Os registros são explicitamente excluídos de apenas uma tabela por vez. No entanto, a exclusão pode se propagar para registros de outras tabelas, caso as ações de propagação em cascata (criadas por meio de Trigger/Gatilhos) forem especificadas nas restrições de integridade referencial da tabela.
Dependendo do número de registros selecionados pela condição na cláusula WHERE, zero, um, vários ou todos os registros de uma tabela podem ser excluídos por um único comando DELETE. Uma cláusula WHERE inexistente especifica que todos os registros na relação deverão ser excluídas; porém, a tabela permanece no banco de dados como uma tabela vazia. O formato de uma instrução DELETE é:
DELETE FROM Tabela WHERE Condições
Vamos a alguns exemplos: excluindo todos os registros da tabela de alunos:
DELETE FROM ALUNOS
A inexistência de uma cláusula WHERE fará com que todos os registros da tabela sejam afetados, e consequentemente apagados. Entretanto, o comando DELETE irá falhar nas relações de restrições de integridade referencial, onde não seja possível excluir um item, caso a chave primária dele esteja cadastrada em uma outra tabela referenciada. Por exemplo, se esse modelo de restrição houvesse sido aplicado ao modelo da escola (nossos exemplos), não seria possível excluir nenhum aluno que tivesse informações de histórico escolar cadastradas.
Outro exemplo: excluindo da tabela alunos que contenham “Marcelo” como parte do nome:
DELETE FROM ALUNOS WHERE Nome Like “%Marcelo%”
Neste exemplo usamos uma cláusula WHERE com a instrução LIKE, exatamente como aprendemos quando estudamos o comando SELECT ... LIKE.