Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

SQL Grundkurs 1: Die Sprache erlernen

Abschneiden und Löschen einer Tabelle

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Wird eine Tabelle nicht mehr benötigt oder soll sie während des Entwicklungsprozesses neu erstellt werden, so entfernen Sie sie mittels DROP aus der Datenbank. Werden am Ende der Entwicklungs- und Testphase die Testdaten nicht mehr benötigt, entfernen Sie diese effizient, indem Sie die Tabelle mit TRUNCATE abschneiden. Beide Anweisungen bekommen Sie in diesem Video erläutert.

Transkript

In diesem Video zeige ich Ihnen, wie Sie mit Tabellen verfahren, deren Inhalte Sie nicht mehr benötigen oder die Sie überhaupt entfernen möchten. Dazu möchte ich Ihnen folgende zwei DDL-Kommandos erläutern, einerseits "Truncate", mit denen man eine Tabelle abschneiden oder leeren kann, und die Anweisung "Drop", mir der man eine Tabelle überhaupt entfernt. In der Tabelle "Schulung" haben wir im Moment nur einen Datensatz drinnen. Diese Tabelle enthält sozusagen Testdaten, das können ja auch mehrere Daten sein, und bevor wir produktiv gehen, möchten wir diese entfernen. Wir könnten das natürlich klassisch mit der Anweisung "Delete" auch realisieren. "Delete From Namen der Tabelle" leert ja auch den kompletten Inhalt. Es gibt aber eine Alternative dazu und das wäre die DDL-Anweisung "Truncate". "Truncate Table", und in unserem Fall heißt die ja "Wawi Schulung". Was ist jetzt der Unterschied zwischen "Delete From " und "Truncate"? "Delete" ist eine klassische DML-Anweisung, D.h. die Änderungen werden protokolliert und können innerhalb einer Transaktion rückgängig gemacht werden. DDL ist ja die "Data Definition Language" und "Truncate" gehört dieser Sprache an. Die Anweisungen von "Truncate" werden nicht protokolliert, D.h. der Vorgang ist wesentlich schneller. Ein weiterer Unterschied ist, dass die Tabelle, bevor sie geleert wird, Speicherplatz belegt, besser gesagt, die Daten belegen Speicherplatz. Der ist für die Tabelle reserviert. Wenn Sie eine Tabelle mit "Delete" leeren, wird der reservierte Speicherplatz nicht freigegeben, sondern den behält sich die Tabelle sozusagen für neue Datensätze auf. Mit der Anweisung "Truncate" wird eine Tabelle nicht nur geleert, sondern auch der gesamte allokierte Speicherplatz wird freigegeben. Die Tabelle steht also danach so da, als wäre sie gerade frisch mit der Anweisung "Create Table" erzeugt worden. Außerdem ist diese Anweisung schneller, da sozusagen diese Änderungen nicht protokolliert werden und sozusagen wie mit einem Schwert durch eine Butter einfach durchgefahren wird, und die Tabelle ist leer. Diese enthält nun keine Daten mehr. Diese Anweisung ist sehr praktisch, um z.B. am Ende einer Entwicklungsphase die Testdaten aus Tabellen zu entfernen. Leider hat diese Anweisung einen kleinen Nachteil: Wir können sie nur für Tabellen verwenden auf die kein Fremdschlüssel verweist. Wenn ich jetzt zum Beispiel die Tabelle "Artikel" abschneiden möchte, dann funktioniert das nicht. Dann bekomme ich eine Fehlermeldung: Sie kann nicht abgeschnitten werden, da eine "Foreign Key"-Einschränkung auf sie verweist. Da geht es jetzt gar nicht darum, dass wirklich Verweise auf die Tabelle stattfinden. Auch wenn alle anderen Tabellen leer wären und somit die Daten mit "Delete" löschbar wären in der Tabelle "Artikel", mit "Truncate" geht es in dem Fall leider nicht. Wenn Sie eine Tabelle gar nicht mehr benötigen, können Sie eine Tabelle auch wieder löschen. Die Anweisung ist sehr einfach. Anstelle von "Truncate" verwenden Sie einfach nur die Anweisung "Drop Table" und schon ist sie weg. Ich möchte es natürlich nicht mit der Artikel-Tabelle hier probieren, sondern mit unserer zuvor erstellten Tabelle "Schulung". Ich führe diese Anweisung aus, und nun ist diese Tabelle weg. Das erkennen wir sofort daran, dass ich einerseits auf diese Tabelle nicht mehr zugreifen kann, auch wenn ich hier die Anzeige aktualisiere. Dann sehen wir, dass "Schulung" jetzt verschwunden ist. Diese beiden Anweisungen sind unter Oracle und MySQL absolut kompatibel, D.h. wir brauchen nichts ändern und können die Anweisungen mit "Copy-Paste" in die jeweiligen Editoren übernehmen. Auch hier haben wir noch unseren Eintrag in der Tabelle "Schulungen", mit der Anweisung "Truncate Table" wird diese Tabelle abgeschnitten oder geleert. Nun enthält sie keine Daten mehr. Mit der Anweisung "Drop Table" wird sie endgültig gelöscht und nun ist sie nicht mehr verfügbar. Hier besteht dasselbe Problem bezüglich des Abschneidens einer Tabelle, auf die ein Fremdschlüssel verweist. Auch hier sagt uns die Fehlermeldung, dass das Ganze nicht funktioniert, solange ein "Foreign Key" auf diese Tabelle verweist. Allerdings gäbe es hier einen kleinen Workaround. Man kann hier temporär Beziehungen deaktivieren unter Oracle, dann könnte man diese Anweisung ausführen und danach diese Beziehungen wieder aktivieren. Und auch MySQL schert aus dieser Runde nicht aus. Auch hier können die Anweisungen in unveränderter Form übernommen und ausgeführt werden. Wir zeigen uns den Inhalt an. Mit der Anweisung "Truncate" leeren wir den Inhalt aus und kontrollieren das Ganze. Mit der Anweisung "Drop" können wir die Tabelle endgültig löschen. Sie ist jetzt nicht mehr da. Sie haben in diesem Video gesehen, wie Sie mit Tabellen umgehen, deren Inhalte Sie nicht mehr benötigen bzw. Tabellen, die Sie gar nicht mehr benötigen. Mit der Anweisung "Truncate"-- mit der DDL-Anweisung "Truncate" können Sie eine Tabelle quasi auf "Frisch erstellt" zurücksetzen. Der ganze Speicherplatz wird freigegeben, und alle Daten werden entfernt. Mit der Anweisung "Drop" wird eine Tabelle gänzlich aus der Datenbank herausgelöscht.

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!