0Pricing
SQL Academy · Pelajaran

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

  1. INSERT dengan Banyak Baris
  2. UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
  3. UPDATE dengan FROM dan Pembaruan Bergaya JOIN
  4. DELETE dengan USING dan Pola Aman
← Kembali ke SQL Academy