Problem:
Chcesz usunąć wiersz / wiersze z tabeli.
Przykład 1:
Na exam
w tabeli znajdują się nazwiska uczniów i wyniki egzaminu.
nazwa | wynik |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anna Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Chcesz usunąć wiersz dla Ellen Thornton.
Rozwiązanie 1:
DELETE FROM exam WHERE name = 'Ellen Thornton';
Tabela exam
teraz wygląda tak:
nazwa | wynik |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anna Johnson | 11 |
Josh Kaur | 10 |
Dyskusja:
Użyj DELETE FROM
z nazwą tabeli, z której chcesz usunąć wiersz. W WHERE
, wpisz warunek określający wiersz. Jeśli masz na myśli konkretny wiersz, najlepiej napisać warunek, używając kolumny zawierającej unikalne wartości. Tutaj unikalna kolumna to name
.
Jeśli istnieje wiele wierszy, których nazwa jest równa „Ellen Thornton
', wszystkie zostaną usunięte. Jeśli nie ma takiej nazwy, żadne wiersze nie są usuwane.
Przykład 2:
Na exam
w tabeli znajdują się nazwiska uczniów i wyniki egzaminu, tak jak w poprzednim przykładzie.
nazwa | wynik |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anna Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Chcesz usunąć wszystkie wiersze, dla których result
jest większe niż 10
.
Rozwiązanie 2:
DELETE FROM exam WHERE result > 10;
exam
tabela wygląda teraz tak:
nazwa | wynik |
---|---|
Janet Morgen | 9 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Dyskusja:
Czasami nie wiesz dokładnie, które wiersze musisz usunąć, a nawet ile wierszy musisz usunąć. Możesz wpisać warunek, dla którego wiersze mają zostać usunięte. Warunek może spełniać wiele wierszy, może to być tylko jeden wiersz lub wcale.
Oczywiście możesz napisać wiele warunków w WHERE
, łącząc je za pomocą AND
lub OR
, na przykład:
DELETE FROM exam WHERE result > 10 AND name LIKE 'J%';