Problema:
Você deseja remover uma linha/linhas de uma tabela.
Exemplo 1:
No
exam
tabela, há nomes dos alunos e os resultados do exame. nome | resultado |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Você deseja remover a linha de Ellen Thornton.
Solução 1:
DELETE FROM exam WHERE name = 'Ellen Thornton';
A tabela
exam
agora fica assim:nome | resultado |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Discussão:
Use
DELETE FROM
com o nome da tabela da qual você deseja excluir uma linha. Em WHERE
, escreva a condição especificando a linha. Se você tiver uma linha específica em mente, é melhor escrever a condição usando a coluna que contém valores exclusivos. Aqui, a coluna exclusiva é name
. Se houver muitas linhas cujo nome seja igual a '
Ellen Thornton
', todos eles serão removidos. Se não houver tal nome, nenhuma linha será removida. Exemplo 2:
No
exam
tabela, há nomes dos alunos e os resultados do exame, assim como no exemplo anterior. nome | resultado |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Você deseja remover todas as linhas para as quais o
result
é maior que 10
. Solução 2:
DELETE FROM exam WHERE result > 10;
O
exam
tabela agora fica assim:nome | resultado |
---|---|
Janet Morgen | 9 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Discussão:
Às vezes, você não sabe as linhas exatas que precisa remover ou mesmo quantas linhas precisa remover. Você pode escrever a condição para a qual as linhas devem ser removidas. Pode haver muitas linhas que atendem à condição, pode ser apenas uma linha ou nenhuma linha.
Claro, você pode escrever várias condições em
WHERE
, juntando-os com AND
ou OR
, por exemplo:DELETE FROM exam WHERE result > 10 AND name LIKE 'J%';