Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Grundkurs 1: Die Sprache erlernen

Löschen von Datensätzen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Weg damit! Lassen Sie sich in diesem Video vorführen, wie Sie nicht mehr benötigte Datensätze aus der Datenbank entfernen. Aber bitte nur, wenn die referenzielle Integrität nichts dagegen hat.

Transkript

In diesem Video zeige ich Ihnen, wie Sie nicht mehr benötigte Datensätze wieder löschen können. Dazu verwenden Sie die Anweisung "DELETE". Die DELETE-Anweisung gehorcht einem uralten Grundsatz, der besagt, dass immer jene Dinge, mit denen man am meisten Schaden anrichten kann, am einfachsten funktionieren. Sie werden gleich sehen, was ich meine, denn die DELETE-Anweisung ist eigentlich, genauer genommen, die einfachste SQL-Anweisung von der Syntax her überhaupt, D.h. spätestens jetzt sind wir an einer Stelle angelangt, wo es gut ist, wenn Sie wissen, was Sie tun, wenn Sie diese Anweisungen ausführen. Denn "DELETE FROM", gefolgt vom Namen einer Tabelle, ist ausreichend, um den kompletten Inhalt dieser Tabelle zu löschen. Sie leeren eine Tabelle damit komplett aus, sofern nicht andere Mechanismen das verhindern. Im konkreten Fall würde diese Anweisung fehlschlagen, weil aufgrund von Fremdschlüsseln, also von referentiellen Integritäten, nicht alle Artikel gelöscht werden würden. Aber, wenn wir diese Anweisung so ausführen, würde das System versuchen, die komplette Tabelle zu leeren. Sie erkennen an der Fehlermeldung, warum das nicht funktioniert: wegen dem Fremdschlüssel. Ich kann das also nicht löschen. Wenn ich also einen oder mehrere Datensätze dezidiert löschen möchte, muss ich dies über die WHERE-Klausel definieren, um diese richtig herauszufiltern. Also: "WHERE", z.B. "Artikelnummer = 1789". Generell gilt Folgendes, wenn wir noch einmal kurz gedanklich zur ersten Anweisung zurückgehen, dass eine Anweisung entweder komplett oder gar nicht durchgeführt wird. D.h. es reicht ein Artikel aus, der nicht gelöscht werden kann, damit diese erste Anweisung fehlschlägt. Es gibt keine Möglichkeit, zu sagen: Lösche einmal die, die du löschen kannst. Die du nicht löschen kannst, lässt du bitte einmal über. Das funktioniert nicht. Sie müssen explizit angeben, wen Sie löschen möchten. Mit dieser Anweisung lösche ich explizit den Artikel mit der Artikelnummer 1789. Die schnellste Kontrolle, ob der wirklich weg ist, ist einfach, die Anweisung noch einmal auszuführen. Denn, wenn dann kein Datensatz mehr gefunden worden ist, hat das erste Löschen erfolgreich funktioniert. Diese Anweisung hat bei allen Datenbank-Managementsystemen, die wir hier verwenden, dieselbe Syntax. Das heißt, ich kopiere das zur Demonstration in den Oracle-Editor. Auch hier bekomme ich eine entsprechende Fehlermeldung "foreign key dependency", also "integrity constraint", also eine Verletzung der referentiellen Integrität. Deshalb kann die erste Anweisung nicht sauber durchgeführt werden. Nun versuche ich hier noch, den einen Artikel explizit zu löschen. Das hat auch hier funktioniert. Gehen wir zum Abschluss noch in den Editor von MySQL und kopieren uns auch hier diese zwei Anweisungen herein. Ich führe die erste Anweisung aus. Werfen wir einen Blick auf die Fehlermeldung: "foreign key constraint". Wobei es hier noch einen zusätzlichen Sicherheitsmechanismus gibt, den die MySQL-Workbench integriert hat. Das ist kein Mechanismus vom Server, sondern das hat mit diesem Editor zu tun. Und zwar, wenn Sie unter "edit preferences" hineingehen, gibt es hier einen Register SQL-Editor. Hier ist standardmäßig die Option "save updates" aktiviert. Ich habe sie hier schon deaktiviert. Sofern diese Option aktiviert ist, werden Updates unterbrochen, wenn in der WHERE-Klausel nicht auf die Schlüsselspalte verwiesen wird oder mittels LIMIT-Klausel eingeschränkt wird, dass nicht alle Daten geändert werden können. Dieser Mechanismus soll verhindern, dass eben durch eine Tabelle durchgefahren wird unabsichtlich und alle Datensätze gelöscht werden. Diese Zeile können wir natürlich auch hier löschen. Führen wir diese Anweisung hier auch noch durch. Wir sehen: "one row affected", dieser Datensatz ist gelöscht worden. Sie haben also in diesem Video gesehen, dass von der Syntax her die DELETE-Anweisung die einfachste oder eine der einfachsten SQL-Anweisungen überhaupt ist. Typischerweise besteht sie nur aus der DELETE-Klausel, in der angegeben wird, aus welcher Tabelle gelöscht wird, gefolgt von einer WHERE-Klausel, in der definiert wird, welche Datensätze zu löschen sind. Wird ein "DELETE" ohne WHERE-Klausel verwendet, wird der gesamte Inhalt der Tabelle gelöscht. Wenn auch nur ein Datensatz, der gelöscht werden sollte, aufgrund von referentiellen Integritäten nicht gelöscht werden kann, schlägt die gesamte Anweisung fehl.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!