Problem:
Du vil fjerne en række/rækker fra en tabel.
Eksempel 1:
I exam
tabel, er der navne på eleverne og resultaterne af eksamen.
navn | resultat |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Du vil fjerne rækken for Ellen Thornton.
Løsning 1:
DELETE FROM exam WHERE name = 'Ellen Thornton';
Tabellen exam
ser nu sådan ud:
navn | resultat |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Diskussion:
Brug DELETE FROM
med navnet på den tabel, som du vil slette en række fra. I WHERE
, skriv betingelsen, der angiver rækken. Hvis du har en bestemt række i tankerne, er det bedst at skrive betingelsen ved hjælp af kolonnen, der indeholder unikke værdier. Her er den unikke kolonne name
.
Hvis der er mange rækker, hvis navn er lig med 'Ellen Thornton
', vil alle blive fjernet. Hvis der ikke er et sådant navn, fjernes ingen rækker.
Eksempel 2:
I exam
tabel, er der navne på eleverne og resultaterne af eksamen, ligesom i det foregående eksempel.
navn | resultat |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Du vil fjerne alle rækker, som result
for er større end 10
.
Løsning 2:
DELETE FROM exam WHERE result > 10;
exam
tabel ser nu sådan ud:
navn | resultat |
---|---|
Janet Morgen | 9 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Diskussion:
Nogle gange ved du ikke de nøjagtige rækker, du skal fjerne, eller hvor mange rækker du skal fjerne. Du kan skrive den tilstand, som rækkerne skal fjernes for. Der kan være mange rækker, der opfylder betingelsen, det kan kun være én række eller slet ingen rækker.
Selvfølgelig kan du skrive flere betingelser i WHERE
, sammen med dem med AND
eller OR
, for eksempel:
DELETE FROM exam WHERE result > 10 AND name LIKE 'J%';