Skip to main content

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 CASCADE davranışı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:
    1. Tek tablo güncelleme
    2. Çoklu sütun güncelleme
    3. Subquery ve JOIN kullanımı
    4. 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)

  1. WHERE kullanmazsam ne olur?

Tüm satırlar güncellenir, bu yüzden dikkatli olun.

  1. JOIN ile güncelleme tüm veritabanlarında çalışır mı?

MySQL destekler, bazı sistemlerde farklı sözdizimi gerekebilir.

  1. ON UPDATE CASCADE nedir?

Ana tablodaki değişiklikleri alt tabloya otomatik yansıtır.

  1. Alt sorgulu (subquery) UPDATE ne işe yarar?

Koşulları dinamik olarak belirlemeye yarar, karmaşık işlemleri kolaylaştırır.

  1. 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.