Pelajaran modul (2/4)
Memperbarui dan menghapus: UPDATE dan DELETE
UPDATE mengubah baris yang ada; DELETE menghapusnya. Keduanya berbagi
aturan emas yang sama dan mendasar: klausa WHERE menentukan baris mana
untuk menyentuh. Melupakannya berarti mengubah/menghapus seluruh tabel.
MEMPERBARUI
UPDATE tabella
SET colonna1 = nuovo_valore,
colonna2 = altra_espressione
WHERE condizione;Contoh:
-- 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: ekspresi dapat mereferensikan arus baris
nilai (price * 1.10), dan juga dapat menggunakan NOW(), NULL, atau
sub-kueri.
MENGHAPUS
DELETE FROM tabella
WHERE condizione;Contoh:
-- Cancella tutte le recensioni con rating < 3:
DELETE FROM reviews
WHERE rating < 3;
-- Cancella un ordine specifico:
DELETE FROM orders WHERE id = 999;KEMBALI ke sini juga
Seperti INSERT, UPDATE dan DELETE juga menerima RETURNING jadi tahukah Anda
apa yang mereka lakukan:
DELETE FROM reviews
WHERE rating < 3
RETURNING id, customer_id, rating;Berguna untuk memasukkan satu gambar apa yang telah dihapus/dimodifikasi.
Kunci asing dan penghapusan
Mencoba menghapus baris yang direferensikan oleh tabel lain melalui kunci asing menghasilkan kesalahan:
DELETE FROM customers WHERE id = 1;
-- ERROR: update or delete on table "customers" violates foreign key constraint
-- on table "orders"Solusi: hapus baris anak terlebih dahulu, atau tentukan FK dengan
ON DELETE CASCADE saat Anda membuat tabel (kami akan membahasnya di
pelajaran DDL berikutnya).
Giliranmu
Kenaikan sebesar 10% harga setiap produk pada kategori 5 (Komputer). Pernyataan UPDATE tunggal.
Tunjukkan petunjuk
Ekspresi di sebelah kanan SET dapat merujuk pada kolom itu sendiri: harga * 1,10.
Solusi tersedia setelah 3 upaya
Tinjau latihan
Hapus setiap ulasan dengan peringkat lebih rendah dari 3 (ulasan sangat negatif).
Tunjukkan petunjuk
DIMANA peringkat < 3.
Solusi tersedia setelah 3 upaya