Um die Daten in Datenbanken verändern zu können, benötigt man drei grundlegende Operationen:
- Einfügen neuer Datensätze
- Bearbeiten bestehender Datensätze
- Löschen überflüssiger Datensätze
Hierfür bietet SQL die DML (Data Manipulation Language). Diese besteht aus den drei Befehlen INSERT INTO
, UPDATE
und DELETE FROM
, die wir im folgenden kennen lernen werden.
Wir gehen in den folgenden Beispielen von dieser Datenbank aus:
Lade dir die Datei personen.sqlite3 herunter und öffne sql.wiki-mathe-info.de. Importiere anschließend die heruntergeladene Datei! Die folgenden Beispiele beziehen sich hierauf!
INSERT INTO
Der Insert
-Befehl spezifiziert zunächst die Tabelle und die Attribute, die eingefügt werden sollen. Dies müssen nicht zwangsläufig alle sein!
INSERT INTO Personen(ID, Name) VALUES (6, 'Bernd');

Vorsicht! Manche Spalten wurden so definiert, dass sie NULL
-Werte nicht zulassen. Der folgende Befehl würde im Beispiel mit der Fehlermeldung NOT NULL constraint failed: Personen.Name
fehlschlagen.
INSERT INTO Personen (ID, Geburtstag) VALUES (12, '1999-01-01')
Man kann auch mehrere Datensätze mit einem einzigen Befehl einfügen. Die Beispieldatenbank wurde so erstellt:
INSERT INTO Personen(ID, Name, Geburtstag) VALUES (1, 'Horst', '1957-03-25'), (2, 'Gerlinde', '1953-02-11'), (3, 'Else', '1964-11-21'), (4, 'Hubert', NULL);
UPDATE
UPDATE Personen SET Name = 'Heinz' WHERE ID = 1

Der UPDATE
-Befehl spezifiziert zunächst die Tabelle, die angepasst werden soll. Anschließend werden mit der SET
-Klausel die zu verändernden Daten angegeben. Die WHERE
-Klausel spezifiziert wie beim SELECT
, welche Datensätze angepasst werden sollen. Dies können auch mehrere gleichzeitig sein!
DELETE FROM
DELETE FROM Personen WHERE ID = 2

Der DELETE
-Befehl spezifiziert zunächst die Tabelle, aus der Daten gelöscht werden sollen. Im Anschluss wird mit einer WHERE
-Klausel wie beim SELECT
spezifiziert, welche Datensätze zum Löschen ausgewählt werden sollen. Dies können ebenso mehrere sein!
DELETE FROM Personen WHERE Geburtstag = '1900-01-01'

VORSICHT! Die WHERE
-Klausel ist optional! Dieser Befehl löscht ALLE Datensätze der Tabelle:
DELETE FROM Personen;
a) Lade dir die Datei personen_mit_essen.sqlite3 herunter und öffne sie in sql.wiki-mathe-info.de.
- Erstellt eine Geburtstagsliste des Kurses! Wer seinen Geburtstag nicht angeben möchte, muss das nicht!
- Sammelt die Lieblingsessen des Kurses und speichert diese!
b) Lade dir die Datei schule.sqlite3 herunter und öffne sie in sql.wiki-mathe-info.de.
- Die Datenbank hat das folgende Schema:
- Schüler(ID, Nachname, Vorname, Geburtsdatum, StrasseNr, PLZ, Ort)
- Kurs(ID, Fach, Thema, Art, Halbjahr, Stunden)
- belegt(↑SchülerID, ↑KursID, Punkte)
- Erstellt für eure Kleingruppe eine Belegungsliste eurer Kurse!