📖DML - Datenmanipulation
Die DML Befehle werden verwendet, um den Inhalt einer Tabelle, also die Daten, zu manipulieren.
Befehl
Beschreibung
INSERT
Daten erfassen
Einfügen neuer Werte in einer Tabelle unter Wahrung der Schlüsselintegrität.
Übernehmen von Daten aus anderen Tabellen.
UPDATE
Daten mutieren
Inhalt einer oder mehrerer Felder von bestehenden Datensätzen verändern.
DELETE
Daten löschen
Löschen einer oder mehrerer ganzen Zeilen.
Achtung: Löschen eines Feldinhaltes ist ein UPDATE
, kein DELETE
!
Man wird vor keiner Mutation oder Löschung gewarnt!
Aus der Sicht der Datenbankmaschine werden immer ganze Tupel geändert oder gelöscht. Es kann jeweils nur in einer Tabelle geändert oder gelöscht werden.
INSERT-Syntax
Alle Spalten einfügen
INSERT [INTO] tabelle
VALUES (wert1, wert2, wert3, …, wertN);
Die Anzahl und Reihenfolge der in der VALUES
-Klausel angegebenen Werte muss mit der Tabellendefinition übereinstimmen. Möchte man nicht alle Werte setzen, kann man nach dem Tabellennamen die Namen der zu ändernden Spalten angeben.
Nur ausgewählte Spalten einfügen
INSERT [INTO] tabelle
(spalte2, spalte3, spalte6) VALUES (wert2, wert3, wert6);
Ausgewählte Spalten mit SET
INSERT [INTO] tabelle
SET spalte2=wert2, spalte3=wert3, spalte6=wert6;
Spalten, die mit NOT NULL
markiert und keinen DEFAULT
-Wert haben, dürfen nicht ausgelassen werden.
Aus SELECT einfügen
-- Alle Spalten
INSERT INTO tabelle1
SELECT spalte1, spalte2, spalte3, spalte4, spalte5
FROM tabelle2;
-- Ausgewählte Spalten
INSERT INTO tabelle1
(spalte2, spalte3, spalte6)
SELECT spalte1, spalte2, spalte3
FROM tabelle2;
Beispiele
-- Alle Spalten setzen
INSERT INTO tabelle
VALUES (1, 'Meier', 'Ueli', NULL, '01.1.1970');
-- Selektiv Spalten setzen
INSERT INTO tabelle (spalte1, spalte2, spalte3, spalte6, spalte9)
VALUES (1, 'Meier', 'Ueli', NULL, '01.1.1970');
-- Bulk-Insert aus anderer Tabelle
INSERT INTO tabelle1
SELECT spalte1, spalte2, spalte3, spalte4, spalte5
FROM tabelle2;
UPDATE-Syntax
UPDATE tabelle
SET spalte1 = wert1, spalte2 = wert2, …, spalteN = wertN
WHERE spalte1 = wertx
Wenn die WHERE
-Klausel kann weggelassen wird, werden alle Datensätze der Tabelle überschrieben!
Beispiele
UPDATE tabelle
SET spalte1 = 10, spalte2 = 'Meier', spalte3 = 'Ueli'
WHERE spalte1 = 9;
UPDATE tabelle
SET spalte1 = spalte4
WHERE spalte2 = 'N';
DELETE-Syntax
DELETE FROM tabelle
WHERE spalte1 = wert1;
Wenn die WHERE
-Klausel kann weggelassen wird, werden alle Datensätze der Tabelle gelöscht!
Beispiele
DELETE FROM tabelle
WHERE spalte5 < '01.01.2000';
Referentielle Integrität
Wenn aus einer Anderen Tabelle ein Fremdschlüssel auf einen hier zu löschenden Datensatz zeigt, kann er nicht gelöscht werden. Um den Löschvorgang durchführen zu können, muss zuerst der Datensatz aus der anderen Tabelle gelöscht werden.
Last updated
Was this helpful?