Direkt zum Hauptinhalt springen
eLearner.app
Modul 8 · Lektion 2 von 430/57 im Kurs~10 min
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

SQL
UPDATE tabella
SET    colonna1 = nuovo_valore,
       colonna2 = altra_espressione
WHERE  condizione;

Beispiele:

SQL
-- 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

SQL
DELETE FROM tabella
WHERE  condizione;

Beispiele:

SQL
-- 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:

SQL
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:

SQL
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

Übung#sql.m8.l2.e1
Versuche: 0Wird geladen…

Erhöhen Sie den Preis jedes Produkts in Kategorie 5 (Computer) um 10 %. Eine einzelne UPDATE-Anweisung.

Editor wird geladen…
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

Übung#sql.m8.l2.e2
Versuche: 0Wird geladen…

Löschen Sie jede Bewertung mit einer Bewertung unter 3 (sehr negative Bewertungen).

Editor wird geladen…
Hinweis anzeigen

WHERE-Bewertung < 3.

Lösung nach 3 Versuchen verfügbar