SQL UPDATE ile Veri Güncelleme

SQL UPDATE ile Veri Güncelleme
SQL UPDATE ile Veri Güncelleme
0

SQL UPDATE Komutu Nedir? Veritabanında Veri Güncelleme

SQL’de UPDATE komutu, veritabanı tablolarındaki mevcut kayıtları (satırları) değiştirmek veya güncellemek için kullanılan en temel DML (Data Manipulation Language) işlemlerinden biridir. Güncelleme işlemi belirli koşullara bağlı olarak yapılabilir. Yalnızca hedeflenen satırları değiştirmek için mutlaka WHERE koşulu kullanılmalıdır. Eğer WHERE koşulunu unutursanız, tablodaki tüm kayıtlar geri alınması zor bir şekilde aynı değere güncellenir.


UPDATE Syntax (Sözdizimi) Yapısı

Standart bir SQL güncelleme işleminin sözdizimi aşağıdaki gibidir:

  • tablo_adi: İçindeki verileri değiştirmek istediğiniz tablonun adıdır.
  • SET: Hangi sütunların güncelleneceğini ve bu sütunlara hangi yeni değerlerin atanacağını belirtir.
  • sutun1, sutun2, …: Güncellenecek ilgili alanlardır.
  • yeni_deger1, yeni_deger2, …: Sütunlara yazılacak olan yeni verilerdir.
  • WHERE sart: Güncelleme işleminin hangi satırlar için geçerli olacağını filtreler. (Uyarı: Kullanılmazsa tüm tablo güncellenir!)

SQL UPDATE Kullanımı: Adım Adım Örnekler

1. Tek Bir Alanı (Sütunu) Güncelleme

Bir calisanlar tablosunda, sadece belirli bir çalışanın maaş bilgisini güncelleyelim:

  • Bu sorgu ile sadece calisan_id değeri 3 olan personelin maaşı 60000 olarak değiştirilecektir.

2. Aynı Anda Birden Fazla Alanı Güncelleme

Tek bir sorgu içerisinde virgül ile ayırarak birden fazla sütunu aynı anda güncelleyebilirsiniz. Örneğin, bir çalışanın hem maaşını hem de departmanını değiştirelim:

  • calisan_id değeri 5 olan kaydın maaşı 75000, departmanı ise “Yazılım” olarak güncellenir.

3. Belirli Bir Şarta Uyan Birden Fazla Kaydı Güncelleme

Toplu güncellemeler yapmak SQL’de çok yaygındır. Örneğin, “Muhasebe” departmanındaki tüm çalışanların maaşına %10 zam yapmak isteyelim:

  • Bu komut sayesinde departmanı Muhasebe olan tüm personelin maaş değeri, mevcut değerinin %10 fazlası ile ezilecektir.

4. Boş (NULL) Değerleri Tespit Edip Güncelleme

Eğer veritabanınızda bazı kayıtların departman bilgisi girilmemişse (NULL ise), bu alanları “Bilinmiyor” olarak standart hale getirebiliriz:

  • IS NULL ifadesi ile boş kayıtlar yakalanır ve tümü “Bilinmiyor” metni ile doldurulur.

5. Metin (String) Fonksiyonları ile Veri Güncelleme

Bazen bir sütundaki verinin tamamını değil, sadece içindeki belirli bir kelimeyi değiştirmek isteyebilirsiniz. Bunun için SQL’deki REPLACE fonksiyonu kullanılır:

  • Ürün adları içinde geçen “Eski” kelimeleri bulunup, yerlerine “Yeni” kelimesi yazılacaktır.

6. Alt Sorgu (Subquery) Kullanarak Güncelleme Yapmak

Güncelleyeceğiniz değeri başka bir tablodan veya sorgudan almak isteyebilirsiniz. Buna alt sorgu ile güncelleme denir:

  • Bu örnekte, siparişleri toplamda 10.000 TL’yi geçen müşterilerin tipi “VIP” olarak güncellenmektedir.

7. LIMIT Kullanarak Güvenli Güncelleme (MySQL Özel)

Yanlışlıkla binlerce kaydı güncellemeyi önlemek veya işlemi parça parça yapmak için MySQL’de LIMIT komutu kullanılabilir:

  • Sadece şarta uyan ilk 100 kayıt güncellenir. Büyük veritabanlarında sunucuyu yormamak için çok kullanışlıdır.

İleri Seviye: Güvenli UPDATE İşlemi İçin Hayati İpuçları

Gerçek dünya projelerinde UPDATE işlemi yaparken veri kaybını önlemek için şu kurallara mutlaka dikkat etmelisiniz:

  • Önce SELECT ile Test Edin: Güncelleyeceğiniz verileri UPDATE yazmadan önce aynı WHERE koşulu ile SELECT * FROM tablo_adi WHERE sart; şeklinde çekerek doğru kayıtları hedeflediğinizden emin olun.
  • Transaction Kullanımı: Mümkünse kritik güncellemelerde kodunuzu bir Transaction bloğu (BEGIN ... COMMIT) içine alın. Bir hata yaparsanız işlemi ROLLBACK ile geri alabilirsiniz.

Sıkça Sorulan Sorular (S.S.S)

SQL UPDATE komutunda WHERE kullanmazsam ne olur?
Eğer WHERE koşulu belirtilmezse, tablodaki mevcut tüm kayıtlar SET ile belirttiğiniz yeni değere eşitlenir. Veri kaybı yaşamamak için çok dikkatli olunmalıdır.

SQL UPDATE işlemini geri alabilir miyim?
Eğer UPDATE işlemini bir Transaction bloğu içinde başlattıysanız ROLLBACK komutu ile işlemi geri alabilirsiniz. Ancak Transaction kullanmadıysanız ve veritabanı yedeğiniz (backup) yoksa, işlem doğrudan diske yazılır ve geri alınamaz.

Paylaş
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


ReCAPTCHA doğrulama süresi sona erdi. Lütfen sayfayı yeniden yükleyin.