FROM ve JOIN Tarzı Güncellemelerle UPDATE
UPDATE ... FROM (PostgreSQL) ve standart MERGE ifadesiyle başka bir tablodaki değerleri kullanarak satırları güncelleyin.
FROM ve JOIN Tarzı Güncellemelerle UPDATE, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
Temel UPDATE
Eşleşen satırlardaki değerleri değiştirin:
UPDATE users SET full_name = 'Alice Adams' WHERE id = 1;Birden Çok Sütun
Virgülle ayrılmış SET listesi:
UPDATE users
SET full_name = 'Alice', last_login = NOW(), visits = visits + 1
WHERE id = 1;Birçok Satırı Güncelleme
WHERE ile daha fazla satırı eşleştirmeniz yeterlidir:
UPDATE orders SET status = 'archived'
WHERE created_at < NOW() - INTERVAL '5 years';Alt Sorguyla UPDATE
Yeni değeri başka bir sorgudan hesaplayın:
UPDATE products
SET review_count = (
SELECT COUNT(*) FROM reviews WHERE reviews.product_id = products.id
);UPDATE … FROM (PostgreSQL)
JOIN biçiminde güncelleme; değerleri başka bir tablodan alın:
UPDATE products p
SET stock = i.qty
FROM inventory i
WHERE i.product_id = p.id;Birden Çok Tablolu UPDATE … FROM
FROM listesi birkaç tablo içerebilir:
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;Standart SQL: İlişkili Alt Sorgu Yoluyla UPDATE … FROM
Taşınabilir eşdeğer (daha yavaş):
UPDATE products p
SET stock = (SELECT qty FROM inventory i WHERE i.product_id = p.id);INSERT/UPDATE/DELETE için MERGE
PostgreSQL 15+, birleşik işlemler için MERGE'i destekler; UPSERT dersine bakın.
UPDATE ile RETURNING
Güncellenen satırları tek bir gidiş-dönüşte geri alın:
UPDATE orders SET status = 'shipped', shipped_at = NOW()
WHERE id = $1
RETURNING id, status, shipped_at;CASE ile Güncelleme
Koşullu yeni değerler:
UPDATE orders
SET status = CASE
WHEN paid_at IS NOT NULL THEN 'paid'
WHEN created_at < NOW() - INTERVAL '24h' THEN 'expired'
ELSE status
END;Eksik WHERE'e Dikkat Edin
UPDATE users SET active = false; EVERY satırı günceller. Üretim ortamında:
- Satır sayısını doğrulamak için önce bir SELECT çalıştırın
- Bir işlem içine alın ve COMMIT öncesinde denetleyin
- Deneme çalıştırması olarak
BEGIN; ...; SELECT count(*) FROM users WHERE active = false; ROLLBACK;kullanın
UPDATE Performansı
Bir UPDATE yeni bir satır sürümü oluşturur ve eskisini ölü olarak işaretler (MVCC). Sık güncellenen tablolar şişebilir; bu konu VACUUM/MVCC dersinde ele alınır.
Özet
UPDATE … FROM, toplu düzeltmeleri temiz bir şekilde yapmanızı sağlayan JOIN biçimindeki güncellemedir.
- Her zaman WHERE kullanın; asla unutmayın
- Doğrulamak için RETURNING kullanın
- Bir işlem içinde ROLLBACK ile test edin
Hızlı Kontrol
PostgreSQL'de başka bir tabloya başvurmanıza olanak tanıyan UPDATE sözdizimi hangisidir?
Sıkça Sorulan Sorular
“FROM ve JOIN Tarzı Güncellemelerle UPDATE” dersi ücretsiz mi?
Evet — “FROM ve JOIN Tarzı Güncellemelerle UPDATE” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“FROM ve JOIN Tarzı Güncellemelerle UPDATE” dersinde ne öğreneceğim?
UPDATE ... FROM (PostgreSQL) ve standart MERGE ifadesiyle başka bir tablodaki değerleri kullanarak satırları güncelleyin. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“FROM ve JOIN Tarzı Güncellemelerle UPDATE” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Birden Çok Satırla INSERT
- UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
- FROM ve JOIN Tarzı Güncellemelerle UPDATE
- USING ile DELETE ve Güvenli Kalıplar