SQL Academy · Pelajaran

UPDATE dengan FROM dan Kemas Kini Gaya JOIN

Kemas kini baris menggunakan nilai daripada jadual lain dengan UPDATE ... FROM (PostgreSQL) dan pernyataan MERGE standard.

Pelajaran 3 daripada 414 langkah

UPDATE dengan FROM dan Kemas Kini Gaya JOIN ialah pelajaran SQL Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran SQL Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus SQL Academy merangkumi sejumlah 4 pelajaran.

UPDATE Asas

Ubah nilai dalam baris yang sepadan:

UPDATE users SET full_name = 'Alice Adams' WHERE id = 1;

Berbilang Lajur

Senarai SET yang dipisahkan dengan koma:

UPDATE users
SET full_name = 'Alice', last_login = NOW(), visits = visits + 1
WHERE id = 1;

Mengemas Kini Banyak Baris

Padankan lebih banyak baris dengan WHERE:

UPDATE orders SET status = 'archived'
WHERE created_at < NOW() - INTERVAL '5 years';

UPDATE dengan Subkueri

Kira nilai baharu daripada pertanyaan lain:

UPDATE products
SET review_count = (
  SELECT COUNT(*) FROM reviews WHERE reviews.product_id = products.id
);

UPDATE … FROM (PostgreSQL)

Kemas kini gaya JOIN — ambil nilai daripada jadual lain:

UPDATE products p
SET stock = i.qty
FROM inventory i
WHERE i.product_id = p.id;

UPDATE … FROM dengan Berbilang Jadual

Senarai FROM boleh merangkumi beberapa jadual:

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;

Piawaian SQL: UPDATE … FROM melalui Subkueri Berkorelasi

Padanan mudah alih antara sistem, tetapi lebih perlahan:

UPDATE products p
SET stock = (SELECT qty FROM inventory i WHERE i.product_id = p.id);

MERGE untuk INSERT/UPDATE/DELETE

PostgreSQL 15+ menyokong MERGE untuk operasi gabungan — lihat pelajaran UPSERT.

RETURNING daripada UPDATE

Dapatkan semula baris yang dikemas kini dalam satu perjalanan ulang-alik:

UPDATE orders SET status = 'shipped', shipped_at = NOW()
WHERE id = $1
RETURNING id, status, shipped_at;

Mengemas Kini dengan CASE

Nilai baharu 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;

Berwaspada terhadap WHERE yang Hilang

UPDATE users SET active = false; mengemas kini EVERY baris. Dalam persekitaran pengeluaran:

  • Jalankan SELECT dahulu untuk mengesahkan bilangan baris
  • Bungkus dalam transaksi dan lakukan pemeriksaan sebelum COMMIT
  • Gunakan BEGIN; ...; SELECT count(*) FROM users WHERE active = false; ROLLBACK; sebagai larian percubaan

Prestasi UPDATE

UPDATE mencipta versi baris baharu dan menandakan versi lama sebagai mati (MVCC). Jadual yang kerap dikemas kini boleh mengembung — perkara ini dibincangkan dalam pelajaran VACUUM/MVCC.

Ringkasan

UPDATE … FROM ialah kemas kini gaya JOIN yang menjadikan pembaikan pukal lebih kemas.

  • WHERE sentiasa diperlukan — jangan sesekali lupa
  • Gunakan RETURNING untuk mengesahkan
  • Uji dalam transaksi dengan ROLLBACK

Semakan Pantas

Sintaks UPDATE yang manakah membolehkan anda merujuk jadual lain dalam PostgreSQL?

Percuma untuk bermula

Pelajari SQL dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
46
Pelajaran
183

Soalan Lazim

Adakah pelajaran “UPDATE dengan FROM dan Kemas Kini Gaya JOIN” percuma?

Ya — teks penuh “UPDATE dengan FROM dan Kemas Kini Gaya JOIN” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus SQL Academy, tingkat taraf kepada CoddyKit PRO. Kursus SQL Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “UPDATE dengan FROM dan Kemas Kini Gaya JOIN”?

Kemas kini baris menggunakan nilai daripada jadual lain dengan UPDATE ... FROM (PostgreSQL) dan pernyataan MERGE standard. Anda berlatih SQL Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan SQL Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran SQL Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “UPDATE dengan FROM dan Kemas Kini Gaya JOIN” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. INSERT dengan Pelbagai Baris
  2. UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
  3. UPDATE dengan FROM dan Kemas Kini Gaya JOIN
  4. DELETE dengan USING dan Corak Selamat
← Kembali ke SQL Academy