SQL Verilerini Güncelleme (UPDATE) Rehberi
Meta açıklaması: SQL UPDATE komutuyla tablolarınızdaki mevcut verileri nasıl değiştireceğinizi, JOIN ile çoklu tablo güncellemelerini ve FOREIGN KEY kısıtlamalarını öğrenin.
🎯 Bu Rehberde Ne Öğreneceksiniz?
Bu kılavuzda, SQL’de UPDATE komutunu kullanarak veritabanınızdaki kayıtları düzenlemeyi öğreneceksiniz.
- Tek tablo güncellemeleri
- Alt sorgularla (subquery) koşullu güncellemeler
- JOIN ile çoklu tablo güncelleme
ON UPDATE CASCADEdavranışıyla ilişkisel veri güncellemeleri
Tüm adımlar, MySQL ortamında örneklerle gösterilmiştir.
🧠 Aşama 1 – Teknik Özet
- Ana konu: SQL UPDATE kullanımı
- Çözdüğü problem: Hatalı veya eksik verileri düzeltmek, toplu güncellemeler yapmak
- Öğreneceğin adımlar:
- Tek tablo güncelleme
- Çoklu sütun güncelleme
- Subquery ve JOIN kullanımı
- Yabancı anahtar kısıtlamaları (ON UPDATE CASCADE, SET NULL)
⚙️ 1. Ortamı Hazırlama
ssh [email protected]
mysql -u admin -p
💬 MySQL sunucusuna bağlanın.
CREATE DATABASE updateDB;
USE updateDB;
💬 Veritabanı oluşturun ve aktif hale getirin.
🧱 2. Örnek Tabloları Oluşturma
CREATE TABLE clients (
clientID INT PRIMARY KEY,
name VARCHAR(20),
routine VARCHAR(30),
standardFee DECIMAL(5,2)
);
💬 Müşteri bilgilerini tutan tablo.
CREATE TABLE shows (
showID INT PRIMARY KEY,
showDate DATE,
clientID INT,
attendance INT,
ticketPrice DECIMAL(4,2),
CONSTRAINT client_fk FOREIGN KEY (clientID) REFERENCES clients(clientID)
);
💬 Performans kayıtlarını tutan tablo.
💾 3. Örnek Verileri Ekleyin
INSERT INTO clients VALUES
(1, 'Kerem', 'standup', 120),
(2, 'Ayşe', 'pantomim', 90),
(3, 'Fatma', 'dans', 150);
INSERT INTO shows VALUES
(1, '2024-12-01', 1, 150, 20),
(2, '2024-12-05', 2, 220, 25),
(3, '2024-12-09', 3, 180, 30);
🔄 4. Tek Tablo Güncelleme (UPDATE Kullanımı)
Belirli Kaydı Güncelleme
UPDATE clients
SET name = 'Kadir'
WHERE name = 'Kerem';
💬 “Kerem” ismini “Kadir” olarak değiştirir.
Toplu Güncelleme (LIKE ile)
UPDATE clients
SET standardFee = 140
WHERE routine LIKE 'p%';
💬 Performans türü “p” ile başlayan tüm kayıtların ücretini günceller.
Aritmetik Güncelleme
UPDATE shows
SET ticketPrice = ticketPrice * 1.2;
💬 Tüm bilet fiyatlarını %20 artırır.
🔗 5. Çoklu Tablo Güncelleme (JOIN ile)
UPDATE clients JOIN shows
USING (clientID)
SET clients.routine = 'mizah',
shows.ticketPrice = 35
WHERE clients.name = 'Ayşe';
💬 clients ve shows tablolarını clientID ile ilişkilendirip iki tabloyu aynı anda günceller.
🔒 6. FOREIGN KEY Güncellemeleri (ON UPDATE CASCADE)
Birincil anahtar değiştiğinde, bağlı tabloyu da otomatik güncellemek için CASCADE kullanılır.
Mevcut Kısıtlamayı Kaldırma
ALTER TABLE shows DROP FOREIGN KEY client_fk;
Yeni Kısıtlama Ekleme (CASCADE ile)
ALTER TABLE shows
ADD CONSTRAINT fk_client_update
FOREIGN KEY (clientID)
REFERENCES clients(clientID)
ON UPDATE CASCADE;
💬 Artık clients tablosundaki ID değişirse, shows tablosu da güncellenir.
❓ Sıkça Sorulan Sorular (SSS)
- WHERE kullanmazsam ne olur?
Tüm satırlar güncellenir, bu yüzden dikkatli olun.
- JOIN ile güncelleme tüm veritabanlarında çalışır mı?
MySQL destekler, bazı sistemlerde farklı sözdizimi gerekebilir.
- ON UPDATE CASCADE nedir?
Ana tablodaki değişiklikleri alt tabloya otomatik yansıtır.
- Alt sorgulu (subquery) UPDATE ne işe yarar?
Koşulları dinamik olarak belirlemeye yarar, karmaşık işlemleri kolaylaştırır.
- UPDATE sonrası uyarıları nasıl görürüm?
SHOW WARNINGS; komutunu kullanabilirsiniz.
☁️ Sonuç ve Öneri
Bu rehberde SQL’de UPDATE komutu kullanarak veri güncellemeyi, JOIN ile çoklu tablo işlemlerini ve ON UPDATE CASCADE kullanımını öğrendiniz. Artık ilişkili tablolarda güvenli veri güncellemeleri yapabilirsiniz. 💡 Şimdi Rabisu Bulut üzerinde bir MySQL sunucusu kurarak bu örnekleri canlı ortamda test edin.