SQL-Befehle DELETE

Tool für SQl Befehle – Löschen einer Datenbank mit unterschiedlichesten Funktionen

Mit DELETE können Werte aus einer Tabelle gelöscht werden. Aufbau :

DELETE FROM
Tabelle
WHERE Bedingung

Wie lösche ich alle Datensätze in einer Tabelle?

Name der Tabelle  

Wie löscht man bestimmte Datensätze in einer Tabelle?

Name der Tabelle  
Feld das geprüft werden soll  
Nach welcher Bedingung soll geprüft werden?  
Auf welchen Wert soll geprüft werden?  

Wie man Datensätze in einer Tabelle wenn in einer zweiten kein Eintrag existiert?

Name der 1. Tabelle  
Name der 2. Tabelle  
Name des abhängigen Feldes aus Tabelle 1  
Name des abhängigen Feldes aus Tabelle 2  

Stell uns deine Frage. Wir antworten dir schnellstens...

Was ist SQL?

Structured Query Language, abgekürzt SQL, bedeutet auf Deutsch strukturierte Abfrage-Sprache. Sie dient dazu, Daten in einer Datenbank zu verwalten. Mit den Befehlen Löschen, Selektieren, Eintragen und Aktualisieren organisieren Sie Daten mithilfe von strukturierten Befehlen. Mit SQL erstellen Sie Datenbanken, löschen und modifizieren sie. Es ist ein nützliches Tool, um Daten von Firmen oder dem privaten Umfeld zu verwalten. Sie sparen Zeit und erreichen die Bereinigung oder Erweiterung von Listen innerhalb kürzester Frist.

Die Grundzüge der Sprache sind einfach zu lernen. Als Basis dienen Tabellen, die aus Spalten und Zeilen bestehen. Somit sind jedem Feld klare Koordinaten zugeordnet. Bei einer Auflistung von Kundennamen kommt es vor, dass zwei Personen gleich heißen. Mit dem Primary Key verleihen Sie jeder Zeile eine eindeutige ID. Beim Einfügen neuer Namen prüft das System automatisch den Wert der zuletzt eingetragenen ID und zählt eins dazu. Damit das funktioniert, benötigt die Spalte die Eigenschaft „auto increment“. Mit SQL Befehle Delete sorgen Sie für Bereinigung nicht mehr benötigter Datensätze. Damit löschen Sie ungültige Adressen oder Namen aus dem Verzeichnis.

SQL Befehle Delete: Wie wenden Sie ihn an?

Der SQL-Befehl DELETE dient zum Löschen von Datensätzen aus Tabellen. Nicht benötigte Daten belasten den Computer unnötig und sorgen für Unübersichtlichkeit. Die Festplatte ist je nach Größe überlastet mit Eingaben, die unnötig Platz verbrauchen. Ein kontinuierliches Löschen von Daten ist ein notwendiger Prozess, der Risiken birgt. Sind sie unachtsam, löschen Sie etwas, das Sie weiterhin benötigen. Achtung: Das Löschen von Daten in einer Tabelle wirkt sich auf andere Datensätze aus falls diese miteinander in Beziehung stehen. Der Befehl ON DELETE NO ACTION verhindert das Löschen von Daten in Vatertabellen.

In einer Tabelle mit Kundendaten ist Sarah Keller zwei Mal vorhanden. Sie entscheiden sich dazu, den Eintrag mit der Kundennummer 24 zu löschen. Dies sieht in SQL so aus:

DELETE FROM kunde
WHERE kundennr = 24;

Verallgemeinert heißt dieser Befehl:

DELETE FROM tabellenname
[WHERE auswahlbedingung];

Wenn Sie eine ganze Tabelle löschen brauchen Sie den WHERE-Zusatz nicht. Grundsätzlich geben Sie bei Tabellenname denjenigen an, aus dem Sie einen Datensatz löschen. Der Vorgang berücksichtigt die Integritätsregeln der betroffenen Datenbank. SQL Befehle Delete funktioniert nicht, falls in einer Tochtertabelle dieselben Daten stehen.

Unterabfragen in Delete-Befehlen

Sie löschen die Daten aller Kunden, die ihre Rechnung vor dem 1. Januar 2015 bezahlten. Dieser Vorgang ist mit einer Unterabfrage möglich. Sie lautet:
DELETE FROM kunde WHERE id
IN
(
SELECT kundennr FROM bestellung GROUP BY kundennr
HAVING MAX(rechnungsdatum) < ‚2015-01-01‘
);
Dieses Tool ist nützlich, um Kunden zu gruppieren und besser zu organisieren.

Wie funktioniert der Rechner für SQL Befehle Delete?

Zu Beginn steht die allgemeine Formel für einen Delete-Befehl:
DELETE FROM
Tabelle
WHERE Bedingung

Es stehen drei Arten von Löschvorgängen zur Verfügung:
a) Löschen von allen Datensätzen in einer Tabelle,
b) Löschen von bestimmten Datensätzen in einer Tabelle,
c) Löschen von Datensätzen, wenn in einer zweiten kein Eintrag dazu existiert.

Bei a) benötigen Sie nur den Tabellennamen, um alle Daten daraus zu löschen. Falls die Adressdatei ihrer Firma veraltet ist und Sie eine neue aufbauen, geben Sie nach der Frage „Wie lösche ich alle Datensätze in einer Tabelle?“ den Namen „adressen“ ein. Dazu löschen Sie vorgängig den Begriff „Tabellenname“ im Kästchen. Der Klick auf „Generieren“ ergibt folgenden SQL Befehle Delete:
DELETE FROM adressen

Bestimmte Datensätze löschen

Die Vorlage zu b) ist folgende:
Wie löscht man bestimmte Datensätze in einer Tabelle?
Name der Tabelle      ____________
Feld das geprüft werden soll      ____________
Nach welcher Bedingung soll geprüft werden? _____
Auf welchen Wert soll geprüft werden? _________

Sehen Sie die Tabelle mit Informationen zu Verkäufen einer Firma in ihren Shops in verschiedenen Städten.

Tabelle: Store_Information
Store     Name         Sales         Txn_Date
Los Angeles         2400         05.Jun.2004
San Diego         650             07.Jun.2004
Los Angeles         400             08.Jun.2004
Boston                 550             08.Jun.2004

Ziel ist, alle Informationen zur Verkaufsstelle in Los Angeles zu löschen. Im Kästchen neben „Name der Tabelle“ überschreiben Sie das Wort „Tabellenname“ mit „Store Information“. Nach „Feld das geprüft werden soll“ tippen Sie „Store Name“ über den Begriff „Suchfeld“. Die Bedingung, nach der geprüft wird ist =. Bei anderen Beispielen wählen Sie je nach Bedarf nach einem Klick auf den Pfeil das richtige Wort oder Zeichen aus. Im letzten Feld nach „Nach welchem Wert soll geprüft werden“ überschreiben Sie „Kondition“ mit Los Angeles.

Mit dem Klick auf das Feld „Generieren“ erscheint folgender Befehl:
DELETE FROM store information WHERE store name = ‚los angeles‘

Er erlaubt das Löschen der nicht mehr benötigten Daten in der ganzen Tabelle. Ein mühsames Suchen und die Fehleranfälligkeit bei handgelöschten Daten bleibt Ihnen erspart. Beachten Sie, dass beim Rechner alle Informationen wie in den vorgedruckten Wörtern mit Kleinbuchstaben beginnen.

Wie löschen Sie Daten einer von einer zweiten abhängigen Tabelle?

Sie haben ein Geschäft für Malerzubehör und möchten ihre Adressliste bereinigen. Sie löschen alle Einträge aus den Adressen, die im letzten Jahr keine Bestellungen tätigten. Damit das nicht zu einem komplizierten Verfahren ausartet, gibt der vom Rechner generierte Befehl die Hilfe, um es in wenigen Momenten zu erledigen.

Sie füllen den dritten Teil des Rechners mit Informationen aus. Der Name der ersten Tabelle ist „adressen“ und derjenige der zweite „bestellungen“. Dazu überschreiben Sie die beiden Wörter „tabellenname“ entsprechend. Die beiden abhängigen Felder sind die Namen der Kunden. Nach dem Klick auf „Generieren“ erscheint Folgendes im Ergebnis-Rechteck:
DELETE FROM adressen WHERE NOT EXISTS (SELECT * FROM bestellungen WHERE bestellungen.name=adressen.name

Der Befehl löscht in der Adressdatei die Namen, die in der Bestelldatei nicht existieren. Damit haben Sie Ihre Liste bereinigt und führen die Namen der Kunden nicht mehr, die im letzten Jahr keine Artikel kauften.

Wem dient der Rechner?

Er ist ein Hilfsmittel für Personen mit Tabellen, welche diese gerne sinnvoll und effizient verwalten. Er ermöglicht das Generieren von Befehlen für drei Fälle des Löschens von Daten für andere Optionen konsultieren Sie zusätzliche Quellen. Er hilft Anfängern in der SQL-Sprache, sich darin besser zurechtzufinden und erste Befehle zu verstehen.

Häufig gestellte Fragen

Kann ein Delete Befehl rückgängig gemacht werden?

Was kennzeichnet den SQL Delete Befehl?

Häufig gestellte Fragen

Kann ein Delete Befehl rückgängig gemacht werden?

Bei Datenbanksystemen gibt es meist zwei verschiedene Modi, um SQL Befehle abzusetzten.
In der interaktiven Kommunikation ist meist ein sogenanntes "Autocommit" voreingestellt. Dies schließt jeden abgesetzten Befehl an die Datenbank ab. Der Befehl kann dann nicht mehr rückgängig gemacht werden.
Im anderen Modus werden die Befehle als Transaktionen gebündelt durchgeführt. Bis zu dem expliziten Commit Befehl, der die abgesetzten Befehle als endgültig kennzeichnet, kann ein Rollback Befehl gegeben werden, der die bisherigen Befehl dieser Transaktion wieder zurücksetzt. Solche Transaktionen sperren Tabellen oder mindestens die betroffenen Zeilen für andere Benutzer, so dass in einem Mehrbenutzersystem Transaktionen üblicherweise nur im Rahmen von Programmen eingesetzt werden, die dann häufig nachts laufen oder sehr kurz und sehr schnell sind.

Was kennzeichnet den SQL Delete Befehl?

Der Delete Befehl ist der Löschbefehl in SQL (Structured Query Language). Er bezieht sich auf eine einzelne Tabelle und löscht Zeilen in dieser Tabelle.
Welche unterschiedlichen Delete Befehle gibt es?
In SQL gibt es genau genommen nur einen einzigen Delete Befehl. Dieser kommt in zwei verschiedenen Ausprägungen vor.
Die einfachste Form ist "Delete from Tabellenname", die bewirkt, dass alle Zeilen in der Tabelle gelöscht werden. Diese Form des Befehls wird meist nur am Anfang der Erstellung einer Datenbank angewandt, wenn Testdaten enthalten sind. Dann möchte man die Definition der Tabelle erhalten, aber die Testdaten wieder löschen.
Später, im Normalbetriebe der Datenbank, wird das Löschen üblicherweise auf ausgewählte Zeilen in der Tabelle beschränkt. Das erfolgt durch die Where Klausel, in der eine oder mehrere Bedingungen angegeben werden. Der Befehl erhält für eine Bedingung die Form "Delete from Tabellenname Where spaltenname Bedingung". Der Spaltenname ist dabei häufig der sogenannte Schlüssel der Tabelle und die Bedingung, daß der Schlüssel gleich einem bestimmten Wert ist. Durch einen Schlüssel wird eine Zeile in der Tabelle eindeutig identifiziert, so daß dann durch den Befehl genau eine Zeile in der Tabelle gelöscht wird. Handelt es sich bei dem Spaltennamen nicht um den Schlüssel, können mehrere Zeilen betroffen sein. Als Beispiel kann man sich eine Tabelle vorstellen, in der die Spalten Kundennummer, Nachname, Vorname, Telefon gespeichert sind. Bei einer solchen Tabelle wird die Kundennummer als Schlüssel eingeführt, damit eine eindeutige Identifikation eines Kunden möglich ist. Wird dann in der Bedingung Bezug genommen auf die Kundennummer, wird nur eine Zeile ausgewählt. Bei allen anderen Spalten ist es ungewiß, ob eine oder mehrere Zeilen betroffen sind.
Die Bedingung muß aber nicht das Gleichsetzen sein. So können in einer Tabelle, die beispielsweise ein Vorgangsdatum enthält, Daten älteren Datums alle gelöscht werden, wenn in der Bedingung definiert wird, daß das Datum kleiner als ein Referenzdatum sein soll.
Es gibt, wie oben gesagt, auch die Möglichkeit, mehrere Bedingungen zu definieren. Diese können dann durch ein "And" oder ein "Or" verbunden werden. Nimmt man das oben angegebene Tabellenbeispiel, könnte man, wenn die Kundennummer unbekannt ist, versuchen, den Kunden durch die Angabe von Nach- und Vornamen einzuschränken. Dann würde die Bedingung lauten Where Nachname = "Schulze" And Vorname = "Hans". Bei solchen Bedingungen ist es ratsam, sich die ausgewählten Zeilen erst durch einen Select Befehl anzusehen. Nur so kann vermieden werden, dass bei zufällig gleicher Kombination von Nach- und Vorname der falsche Kunde gelöscht wird.