Usuwanie rekordów z bazy danych poleceniem DELETE FROM
Stronę tą wyświetlono już: 5008 razy
Na poprzedniej stronie Programowanie → Podstawy SQL-a → Wyświetlanie zawartości tabeli poleceniem SELECT przy okazji omawiania interesujących zagadnień związanych z poleceniem SELECT zauważyłem, że w tabeli books bazy danych library znajdują się aż trzy niepotrzebne mi do niczego wpisy, przyjrzyjmy się im niezwłocznie:
mysql> USE library; Database changed mysql> SELECT * FROM books; +----+--------------------------------+------------------+-------+ | id | title | author | pages | +----+--------------------------------+------------------+-------+ | 1 | Tytuł 1 | Autor 1 | 0 | | 2 | Tytuł 2 | Autor 2 | 0 | | 3 | Tytuł 3 | Autor 3 | 0 | | 4 | Hobbit, czyli tam i z powrotem | J. R. R. Tolkien | 300 | | 5 | Drużyna Pierścienia | J. R. R. Tolkien | 300 | | 6 | Dwie wieże | J. R. R. Tolkien | 300 | | 7 | Powrót króla | J. R. R. Tolkien | 300 | | 8 | Odyseja kosmiczna 2001 | Arthur C. Clark | 300 | | 9 | Odyseja kosmiczna 2010 | Arthur C. Clark | 300 | | 10 | Odyseja kosmiczna 2061 | Arthur C. Clark | 300 | | 11 | Odyseja kosmiczna 3001 | Arthur C. Clark | 300 | +----+--------------------------------+------------------+-------+ 11 rows in set (0.00 sec) mysql>
Jak widać, pierwsze trzy wpisy były wpisami testowymi, które teraz pragnę czym prędzej usunąć z tabeli books, co też i czynię z najdzikszą rozkoszą za pomocą polecenie DELETE FROM w następujący sposób:
mysql> DELETE FROM books WHERE id BETWEEN 0 AND 3; Query OK, 3 rows affected (0.02 sec) mysql> SELECT * FROM books; +----+--------------------------------+------------------+-------+ | id | title | author | pages | +----+--------------------------------+------------------+-------+ | 4 | Hobbit, czyli tam i z powrotem | J. R. R. Tolkien | 300 | | 5 | Drużyna Pierścienia | J. R. R. Tolkien | 300 | | 6 | Dwie wieże | J. R. R. Tolkien | 300 | | 7 | Powrót króla | J. R. R. Tolkien | 300 | | 8 | Odyseja kosmiczna 2001 | Arthur C. Clark | 300 | | 9 | Odyseja kosmiczna 2010 | Arthur C. Clark | 300 | | 10 | Odyseja kosmiczna 2061 | Arthur C. Clark | 300 | | 11 | Odyseja kosmiczna 3001 | Arthur C. Clark | 300 | +----+--------------------------------+------------------+-------+ 8 rows in set (0.02 sec) mysql>
Jak widać słowo kluczowe WHERE tak jak w poleceniu SELECT tak i tutaj umożliwia wyciąganie rekordów spełniających określone warunki.