UPDATE dengan FROM dan Pembaruan Bergaya JOIN
Perbarui baris menggunakan nilai dari tabel lain dengan UPDATE ... FROM (PostgreSQL) dan pernyataan MERGE standar.
UPDATE dengan FROM dan Pembaruan Bergaya JOIN adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
UPDATE Dasar
Ubah nilai pada baris yang cocok:
UPDATE users SET full_name = 'Alice Adams' WHERE id = 1;Beberapa Kolom
Daftar SET yang dipisahkan koma:
UPDATE users
SET full_name = 'Alice', last_login = NOW(), visits = visits + 1
WHERE id = 1;Memperbarui Banyak Baris
Cocokkan lebih banyak baris dengan WHERE:
UPDATE orders SET status = 'archived'
WHERE created_at < NOW() - INTERVAL '5 years';UPDATE dengan Subkueri
Hitung nilai baru dari kueri lain:
UPDATE products
SET review_count = (
SELECT COUNT(*) FROM reviews WHERE reviews.product_id = products.id
);UPDATE … FROM (PostgreSQL)
Pembaruan bergaya JOIN — ambil nilai dari tabel lain:
UPDATE products p
SET stock = i.qty
FROM inventory i
WHERE i.product_id = p.id;UPDATE … FROM dengan Beberapa Tabel
Daftar FROM dapat mencakup beberapa tabel:
UPDATE invoices inv
SET tax_rate = r.rate
FROM users u
JOIN rates r ON r.country = u.country
WHERE inv.user_id = u.id;SQL Standar: UPDATE … FROM melalui Subkueri Berkorelasi
Padanan portabel, tetapi lebih lambat:
UPDATE products p
SET stock = (SELECT qty FROM inventory i WHERE i.product_id = p.id);MERGE untuk INSERT/UPDATE/DELETE
PostgreSQL 15+ mendukung MERGE untuk operasi gabungan — lihat pelajaran UPSERT.
RETURNING dari UPDATE
Dapatkan kembali baris yang diperbarui dalam satu perjalanan bolak-balik:
UPDATE orders SET status = 'shipped', shipped_at = NOW()
WHERE id = $1
RETURNING id, status, shipped_at;Memperbarui dengan CASE
Nilai baru bersyarat:
UPDATE orders
SET status = CASE
WHEN paid_at IS NOT NULL THEN 'paid'
WHEN created_at < NOW() - INTERVAL '24h' THEN 'expired'
ELSE status
END;Waspadai WHERE yang Hilang
UPDATE users SET active = false; memperbarui EVERY baris. Dalam produksi:
- Jalankan SELECT terlebih dahulu untuk memverifikasi jumlah baris
- Bungkus dalam transaksi dan lakukan pemeriksaan sebelum COMMIT
- Gunakan
BEGIN; ...; SELECT count(*) FROM users WHERE active = false; ROLLBACK;sebagai uji coba
Performa UPDATE
Sebuah UPDATE membuat versi baris baru dan menandai versi lama sebagai mati (MVCC). Tabel yang sering diperbarui dapat membengkak — hal ini dibahas dalam pelajaran VACUUM/MVCC.
Ringkasan
UPDATE … FROM adalah pembaruan bergaya JOIN yang membuat perbaikan massal menjadi rapi.
- Selalu gunakan WHERE — jangan pernah lupa
- Gunakan RETURNING untuk memverifikasi
- Uji dalam transaksi dengan ROLLBACK
Pemeriksaan Singkat
Sintaks UPDATE mana yang memungkinkan Anda merujuk ke tabel lain di PostgreSQL?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “UPDATE dengan FROM dan Pembaruan Bergaya JOIN” gratis?
Ya — teks lengkap “UPDATE dengan FROM dan Pembaruan Bergaya JOIN” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “UPDATE dengan FROM dan Pembaruan Bergaya JOIN”?
Perbarui baris menggunakan nilai dari tabel lain dengan UPDATE ... FROM (PostgreSQL) dan pernyataan MERGE standar. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “UPDATE dengan FROM dan Pembaruan Bergaya JOIN” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- INSERT dengan Banyak Baris
- UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
- UPDATE dengan FROM dan Pembaruan Bergaya JOIN
- DELETE dengan USING dan Pola Aman