====== 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 [[dbs:sql:example:createstaff]]-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 [[dbs:sql:example:createstaff]]-Skript benutzt haben, um unsere Mitarbeiter wiederzubeleben, wollen wir nun den armen 'Arne Aushilfskraft' aus der Liste der Mitarbeiter entfernen. Wir haben bei ''[[SELECT]]'' 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 [[update|nächsten Lektion]] den Befehl ''UPDATE'' an.