1.7.3) DML (Data Manipulation Language)

Unsere Tabellen sind angelegt und warten darauf, mit Daten gefüttert bzw. durchsucht zu werden. Lernen Sie im Folgenden, wie das gemacht wird.
Die Data Manipulation Language umfasst insgesamt 3 Arten von Statements:

1.7.3.1) Einfügen von Datensätzen

Bevor Sie mit einer Datenbank arbeiten, sollten zunächst einmal Daten in der Datenbank vorhanden sein.
Um Daten in eine Datenbank einzufügen, benutzen wir den Befehl INSERT. Dessen Aufbau ist recht einfach:

INSERT INTO <Tabelle> [(Spalte1, Spalte2,...)] VALUES (<wert1>, <wert2>,...);

Als Beispiel wollen wir einen Datensatz in die Tabelle Administratoren einfügen:

INSERT INTO Administratoren (UserID, USER, Passwort) VALUES (1,'Meister','geheim');

Die Zuordnung, welcher Wert in welche Spalte eingefügt wird, geschieht über die jeweiligen Positionen innerhalb der Klammern;
⇒ der erste Wert „Meister“ wird in die erste Spalte „User“ eingefügt.

Wenn wir einen neuen Datensatz anlegen, müssen wir nicht alle Spalten sofort füllen. Die Tabelle Administratoren hat eigentlich drei Spalten. Damit das aber funktioniert und sich das DBMS nicht beschwert, darf die Spalte nicht als NOT NULL definiert sein. Oder, wenn sie es ist, muss sie einen Defaultwert aufweisen.

1.7.3.2) Ändern von Datensätzen

Einen Datensatz können wir mit UPDATE ändern - Vorsicht, es ist nicht möglich, damit einen Datensatz einzufügen.

Hier die vollständige Syntax:

UPDATE Relation 
   SET <Spalte1>=<Wert> [, <Spalte2>=<Wert>, ...] 
     [WHERE <Bedingung>]

Die WHERE-Bedingung ist optional, Sie haben dieselben Möglichkeiten zum Formulieren wie bei der SELECT-Anweisung. Geben Sie keine Bedingung an, wirkt sich ein Update auf alle aufgezählten Spalten aus.

Wollen wir die Spalte User aller Datensätze auf einen neuen Wert setzen, schreiben wir:

UPDATE Administratoren SET Passwort='noch geheimer';

Wollen wir nur einen einzelnen Datensatz ändern bzw. nur einige, so müssen wir eine entsprechende WHERE-Klausel formulieren.

UPDATE Administratoren
   SET Passwort='ganz geheim'
   WHERE UserID='1';

Sie sollten für das Update eines einzelnen Datensatzes unbedingt dessen Primärschlüssel als Bedingung nehmen, wie in diesem Beispiel. Die Bedingung über die Spalte User zu formulieren, würde nur sicher sein, wenn wir beim Einfügen des Datensatzes darauf achten, in dieser Spalte keine Werte doppelt zu haben.

1.7.3.3) Löschen von Datensätzen

Was wir zum Abschluss des Abschnitts über das UPDATE gesagt haben, gilt auch für die DELETE-Anweisung. Benutzen Sie zum Löschen mit DELETE immer eine WHERE-Klausel mit Bezug auf den Primärschlüssel, außer Sie wollen wirklich alle Datensätze einer Tabelle löschen.

Die Syntax zum Löschen eines oder mehrerer Datensätze lautet:

DELETE FROM Relation
   [WHERE <Bedingung>]

Auch hier ist die WHERE-Klausel optional, wird keine angegeben, werden alle Datensätze gelöscht - die Tabelle ist danach leer.

Um eine Eintrag aus der Administrator-Tabelle zu löschen, schreiben wir:

DELETE FROM Administratoren WHERE UserID=1;