Seitenleiste

Community

SQL

Grundlagen

Datenbanksysteme

Client/Server

Eingebettet

Daten löschen

Wir können bisher Daten hinzufügen, aber manchmal verlieren Daten auch ihre Gültigkeit. Ein Kunde verlangt die Löschung seiner Kundendaten oder ein Artikel wird nicht mehr länger geführt. In dem Fall müssen wir der Datenbank erklären, dass wir Daten löschen wollen.

Tabellen leeren

Die brachialste Möglichkeit ist die komplette Tabelle zu löschen. Nehmen wir unser CreateStaff.sql-Skript und löschen alle Einträge aus der Staff-Tabelle. Dafür verwenden wir den Befehl DELETE FROM.

mysql> delete from staff;
Query OK, 6 rows affected (0.00 sec)

Wir sehen direkt an der Ausgabe, dass 6 Zeilen verändert - in diesem Fall gelöscht wurden: Die Tabelle ist nun leer:

mysql> select * from staff;
Empty set (0.00 sec)

Einträge gezielt löschen

Nachdem wir unser CreateStaff.sql-Skript benutzt haben, um unsere Mitarbeiter wiederzubeleben, wollen wir nun den armen 'Arne Aushilfskraft' aus der Liste der Mitarbeiter entfernen. Wir haben bei Daten abrufen bereits gesehen, dass man sich mit der sogenannten WHERE-Klausel bestimmte Zeilen herauspicken kann:

mysql> select * from staff where GivenName = "Arne";
+---------+------------+--------+---------------+-----------+------+---------------+
| StaffId | Department | Salary | FamilyName    | GivenName | Sex  | DateOfJoining |
+---------+------------+--------+---------------+-----------+------+---------------+
|    1000 |       NULL |   NULL | Aushilfskraft | Arne      | m    | 2013-02-01    |
+---------+------------+--------+---------------+-----------+------+---------------+
1 row in set (0.00 sec)

Es gibt in unserer Mitarbeiterliste also nur einen Arne und so können wir nun alle Mitarbeiter löschen, die mit Vornamen „Arne“ heißen:

mysql> DELETE FROM staff WHERE GivenName = "Arne";
Query OK, 1 ROW affected (0.00 sec)

So lassen sich beliebigen Bedingungen formulieren, wie Zeilen aus der Datenbank entfernt werden können. Achten Sie darauf, dass sie DELETE FROM mit einem WHERE verwenden und nicht versehentlich alle Daten löschen.

Übungen

  • Löschen Sie alle Mitarbeiter aus dem Department 1
  • Löschen Sie alle Mitarbeiter, deren Nachname mit H beginnt (LIKE „H%“)
  • Löschen Sie alle weiblichen Mitarbeiter

Wenn nun nur noch „Rainer Ramsch“ für die Firma arbeitet, hat alles geklappt.

Ziel dieser Lektion

Eine einfache Lektion, nachdem Du gelernt hast Tabellen zu füllen, kannst Du sie nun auch wieder leeren. Bevor Du allerdings versuchst, Einträge zu verändern, indem Du sie löschst und neu anlegst, schau Dir lieber in der nächsten Lektion den Befehl UPDATE an.