Datensätze aktualisieren
id | name | alter | lieblingszahl |
---|---|---|---|
1 | Litty Feuerwehr | 32 | 7 |
2 | Crazy Lego Dude | 23 | 10 |
6 | Wigwam Tipi | 18 | 1 |
7 | Botot | 37 | 99 |
UPDATE legodudes
SET lieblingszahl = 42
WHERE id = 2;
Resultat
oder mehrere Attribute auf einmal:
UPDATE legodudes
SET lieblingszahl = 42, alter = 18
WHERE id = 2;
Resultat
Es können auch alle Datensätze auf einmal aktualisiert werden:
UPDATE legodudes
SET lieblingszahl = 42, alter = 18;
Resultat
oder der Name bspw. mit einem Suffix versehen werden:
UPDATE legodudes
SET name = CONCAT('🤡', name);
Resultat
Datensätze löschen
DELETE FROM legodudes
WHERE id = 2;
Alle Datensätze löschen
DELETE FROM legodudes;
Datenbank
EDU-DB's EF ef_name
👉 https://db-sql.ch/connections/d68ea3c2-eb9f-4454-aa19-9c00764757b5
-
Aktualisieren Sie in Ihrer Datenbank eine Textspalte (bspw.
name
), so dass der ganze Text grossgeschrieben ist. (Referenz: 👉 postgresql.org)
-
Löschen Sie einen Datensatz aus Ihrer Tabelle.
Datenbank
EDU-DB's EF ef_name
👉 https://db-sql.ch/connections/d68ea3c2-eb9f-4454-aa19-9c00764757b5
Vorbereitung
Erstellen Sie die Legomania Datenbank durch Copy-Paste in Ihrer eignen Datenbank:
Legomania
-
Was passiert, wenn Sie den Legodude mit ID 3 Löschen? Wieso geht dies, aber bei ID 2 nicht? Vermutungen?
⚠️ Nicht Eingeloggt Speichern nur mit GBSL-Login möglich. Login -
Beim erzeugen des Constraints kann auch angegeben werden, was beim Löschen passieren soll. So können bspw. die Haustiere mitgelöscht werden, wenn der Legodude gelöscht wird. Erstellen Sie einen neuen Constraint, welcher dies erzwingt, und probieren Sie es erneut aus.
-- aktuelles Constraint löschen
ALTER TABLE haustiere
DROP CONSTRAINT constraint_name;
-- neuen Constraint erstellen - beachten Sie das "ON DELETE CASCADE"
ALTER TABLE haustiere
ADD FOREIGN KEY (legodude_id) REFERENCES legodudes(id) ON DELETE CASCADE;Der Name des Constraints kann beim Fremdschlüssel nachgeschaut werden (oder auch aus der Fehlermeldung von Aufgabe 1 entnommen werden):
Überprüfen Sie, ob alles geklappt hat
-
indem Sie das Datenbankschema neu laden und überprüfen, ob nach wie vor ein einziger Constraint existiert
-
erneut versuchen, den Legodude mit ID 2 zu löschen.
Was ist mit Dundun, dem Haustier von Legodude#2 passiert? Findet man es noch in der Tabelle?
⚠️ Nicht Eingeloggt Speichern nur mit GBSL-Login möglich. Login -
-
Natürlich müssen die Haustiere beim Entfernen eines Legodudes nicht unbedingt auch gleich sterben... Es kann auch der Fremdschlüssel auf
NULL
gesetzt werden:-- aktuelles Constraint löschen
ALTER TABLE haustiere
DROP CONSTRAINT constraint_name;
-- neuen Constraint erstellen - beachten Sie das "ON DELETE CASCADE"
ALTER TABLE haustiere
ADD FOREIGN KEY (legodude_id) REFERENCES legodudes(id) ON DELETE SET NULL;⚠️ Nicht Eingeloggt Speichern nur mit GBSL-Login möglich. Login
Datensätze Manipulieren