Lekcje modułu (2/4)
Aktualizowanie i usuwanie: UPDATE i DELETE
UPDATE modyfikuje istniejące wiersze; DELETE usuwa je. Obaj podzielają
ta sama, podstawowa, złota zasada: klauzula WHERE decyduje które wiersze
dotknąć. Zapomnienie oznacza modyfikację/usunięcie całej tabeli.
AKTUALIZACJA
UPDATE tabella
SET colonna1 = nuovo_valore,
colonna2 = altra_espressione
WHERE condizione;Przykłady:
-- 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: wyrażenie może odwoływać się do bieżącego wiersza
wartości (price * 1.10), a także może używać NOW(), NULL lub
podzapytania.
USUWAĆ
DELETE FROM tabella
WHERE condizione;Przykłady:
-- Cancella tutte le recensioni con rating < 3:
DELETE FROM reviews
WHERE rating < 3;
-- Cancella un ordine specifico:
DELETE FROM orders WHERE id = 999;Tutaj też POWRÓT
Podobnie jak INSERT, UPDATE i DELETE również akceptują RETURNING, więc wiesz
na czym polegali:
DELETE FROM reviews
WHERE rating < 3
RETURNING id, customer_id, rating;Przydatne do jednorazowego logowania tego, co zostało usunięte/zmodyfikowane.
Klucze obce i usuwanie
Próba usunięcia wiersza, do którego odwołuje się inna tabela, za pomocą klucza obcego powoduje błąd:
DELETE FROM customers WHERE id = 1;
-- ERROR: update or delete on table "customers" violates foreign key constraint
-- on table "orders"Rozwiązania: najpierw usuń wiersze podrzędne lub zdefiniuj FK za pomocą
ON DELETE CASCADE podczas tworzenia tabeli (omówimy to w artykule
następna lekcja DDL).
Twoja kolej
Zwiększ o 10% cenę każdego produktu w kategorii 5 (Komputer). Pojedyncza instrukcja UPDATE.
Pokaż wskazówkę
Wyrażenie po prawej stronie SET może odnosić się do samej kolumny: cena * 1.10.
Rozwiązanie dostępne po 3 próbach
Przejrzyj ćwiczenie
Usuń każdą recenzję z oceną niższą niż 3 (bardzo negatywne recenzje).
Pokaż wskazówkę
GDZIE ocena < 3.
Rozwiązanie dostępne po 3 próbach