Lektionen des Moduls (2/4)
Aktualisieren und Löschen: UPDATE und DELETE
UPDATE ändert vorhandene Zeilen; DELETE entfernt sie. Beide teilen sich das
gleiche, grundlegende, goldene Regel: Die WHERE-Klausel entscheidet, welche Zeilen
zu berühren. Wenn Sie es vergessen, müssen Sie die gesamte Tabelle ändern/löschen.
AKTUALISIEREN
UPDATE tabella
SET colonna1 = nuovo_valore,
colonna2 = altra_espressione
WHERE condizione;Beispiele:
-- Aumenta del 10% i prezzi di tutti i prodotti della categoria 5 (Computer):
UPDATE products
SET price = price * 1.10
WHERE category_id = 5;
-- Aggiorna due colonne contemporaneamente:
UPDATE orders
SET status = 'shipped',
shipped_at = NOW()
WHERE id = 12;SET col = espressione: Der Ausdruck kann auf die aktuelle Zeile verweisen
Werte*_ (price _ 1.10) und können auch NOW(), NULL oder verwenden
Unterabfragen.
LÖSCHEN
DELETE FROM tabella
WHERE condizione;Beispiele:
-- Cancella tutte le recensioni con rating < 3:
DELETE FROM reviews
WHERE rating < 3;
-- Cancella un ordine specifico:
DELETE FROM orders WHERE id = 999;Auch hier kehren wir zurück
Wie INSERT akzeptieren auch UPDATE und DELETE RETURNING, damit Sie es wissen
worauf sie reagiert haben:
DELETE FROM reviews
WHERE rating < 3
RETURNING id, customer_id, rating;Nützlich, um auf einmal zu protokollieren, was gelöscht/geändert wurde.
Fremdschlüssel und Löschung
Es wird versucht, eine Zeile zu löschen, auf die eine andere Tabelle über einen Fremdschlüssel verweist erzeugt einen Fehler:
DELETE FROM customers WHERE id = 1;
-- ERROR: update or delete on table "customers" violates foreign key constraint
-- on table "orders"Lösungen: Löschen Sie zuerst die untergeordneten Zeilen oder definieren Sie den FK mit
ON DELETE CASCADE, wenn Sie die Tabelle erstellen (wir werden dies in der behandeln).
nächste DDL-Lektion).
Du bist dran
Erhöhen Sie den Preis jedes Produkts in Kategorie 5 (Computer) um 10 %. Eine einzelne UPDATE-Anweisung.
Hinweis anzeigen
Der Ausdruck rechts von SET kann auf die Spalte selbst verweisen: Preis * 1,10.
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
Löschen Sie jede Bewertung mit einer Bewertung unter 3 (sehr negative Bewertungen).
Hinweis anzeigen
WHERE-Bewertung < 3.
Lösung nach 3 Versuchen verfügbar