SQL UPDATE, veritabanındaki mevcut kayıtların değiştirilmesini sağlayan bir SQL komutudur. Bir tablodaki tek bir kaydı, birden fazla kaydı veya belirli sütunlardaki değerleri güncellemek için kullanılır. UPDATE komutu, özellikle kullanıcı bilgileri, ürün fiyatları, stok miktarları ve sipariş durumları gibi değişken verilerin yönetiminde önemli bir yere sahiptir. SQL UPDATE işlemlerinde SET ifadesi yeni değeri belirlerken WHERE koşulu hangi kayıtların güncelleneceğini kontrol eder.
SQL UPDATE Ne İşe Yarar?
SQL UPDATE komutu, veritabanında daha önce oluşturulmuş kayıtların değiştirilmesini sağlar. Yeni kayıt eklemek yerine mevcut veriler üzerinde düzenleme yapılması gerektiğinde kullanılır.
Bir e-ticaret sitesinde ürün fiyatlarının değiştirilmesi, müşteri adreslerinin güncellenmesi veya sipariş durumunun değiştirilmesi UPDATE komutuyla gerçekleştirilebilir. Veritabanı kullanan web uygulamalarında bu işlemler, uygulamanın çalıştığı hosting altyapısı üzerinden veritabanı sunucusuna gönderilen sorgularla yürütülür.
Ancak UPDATE komutunun kendisi barındırma hizmetinden bağımsız bir SQL işlemidir. SQL UPDATE komutunun yaygın kullanım alanları şunlardır:
Kullanıcı bilgileri
Kullanıcıların profil ve iletişim bilgilerini güncellemek.
Fiyat ve stok
Ürünlerin fiyat ve stok bilgilerini değiştirmek.
Sipariş durumu
Siparişlerin durumunu güncellemek.
Veri düzeltme
Hatalı girilmiş verileri düzeltmek.
Toplu güncelleme
Belirli koşulları karşılayan kayıtları toplu olarak değiştirmek.
SQL UPDATE Komutu Nasıl Kullanılır?
SQL UPDATE komutu, güncellenecek tabloyu, değiştirilecek sütunları ve isteğe bağlı olarak güncellenecek kayıtları belirleyen koşulları içerir.
SQL UPDATE Söz Dizimi
UPDATE komutunun temel kullanımı şu şekildedir:
Bu sorguda kullanılan ifadelerin görevleri şöyledir:

Mesela musteriler tablosunda kimlik numarası 5 olan müşterinin şehir bilgisini değiştirmek için aşağıdaki sorgu kullanılabilir:
Bu sorgu yalnızca id değeri 5 olan kaydı hedefler.
WHERE ile Belirli Bir Kaydı Güncelleme
WHERE, UPDATE komutunun en önemli bölümlerinden biridir. Güncellenecek kayıtların belirli koşullara göre seçilmesini sağlar. Örnek olarak:
Bu sorgu, ürün kimliği 12 olan kaydın fiyatını 750 olarak değiştirir.

Önemli
UPDATE sorgusunda WHERE kullanılmazsa tablodaki bütün satırlar güncellenir. Bu nedenle özellikle gerçek verilerin bulunduğu sistemlerde koşulsuz UPDATE sorguları dikkatle kullanılmalıdır.
Birden Fazla Sütunu Güncelleme
SQL UPDATE komutuyla aynı kayıttaki birden fazla sütun tek sorguda güncellenebilir. Bunun için SET bölümünde sütunlar virgülle ayrılır.
Bu örnekte müşterinin adı, şehir bilgisi ve hesap durumu aynı işlemde değiştirilir.
SQL UPDATE Örnekleri
UPDATE komutunun kullanımını anlamak için farklı senaryolar üzerinden örnekler incelemek faydalıdır.
Tek Bir Kaydı Güncelleme
Bir personelin maaş bilgisinin değiştirilmesi gerektiğini düşünelim.
Bu sorgu, personeller tablosunda id değeri 3 olan kaydın maaş bilgisini günceller.
Birden Fazla Kaydı Güncelleme
UPDATE komutu, belirli bir koşulu karşılayan birden fazla kaydı aynı anda değiştirebilir. Aktif olmayan müşterilerin durumunu güncellemek için:
Bu sorgu, son giriş tarihi belirtilen tarihten önce olan tüm müşterilerin durumunu pasif olarak değiştirir.
Toplu işlemlerden önce
Gerçek uygulamalarda bu tür toplu işlemlerden önce hangi kayıtların etkileneceği kontrol edilmelidir.
Matematiksel İşlemle Veri Güncelleme
UPDATE komutunda mevcut sütun değerleri üzerinden matematiksel işlemler yapılabilir. Tüm ürünlerin fiyatını %10 artırmak için:
Bu sorgu, urunler tablosundaki bütün ürün fiyatlarını %10 artırır. Yalnızca belirli bir kategorideki ürünlerin fiyatlarını güncellemek için ise koşul eklenebilir:
Bu örnekte yalnızca kategori kimliği 4 olan ürünlerin fiyatları değiştirilir.
NULL Değerleri Güncelleme
Veritabanında bazı sütunlar NULL değerine sahip olabilir. NULL, ilgili alanda bir değerin bulunmadığını ifade eder. NULL değerlerini güncellemek için IS NULL koşulu kullanılabilir.
Bu sorgu, telefon bilgisi NULL olan kayıtları günceller.
Bilmekte fayda var!
NULL kontrolünde = NULL yerine IS NULL kullanılması gerekir.
SQL UPDATE ile JOIN Nasıl Kullanılır?
SQL UPDATE işlemleri, başka bir tablodaki bilgilerden yararlanılarak da gerçekleştirilebilir. Bu yöntem özellikle ilişkili veritabanı tablolarında kullanılır.
Misal olarak urunler tablosundaki kategori bilgilerini, kategoriler tablosundaki verilere göre güncellemek isteyebiliriz. MySQL üzerinde aşağıdaki sorgu kullanılabilir:
Bu sorgu, aktif kategorilere ait ürünlerin indirim oranlarını ilgili kategorinin indirim oranıyla günceller.
Veritabanına göre değişir!
JOIN ile UPDATE kullanımı veritabanı sistemlerine göre farklılık gösterebilir. PostgreSQL üzerinde benzer işlemler için UPDATE ... FROM söz dizimi kullanılabilir.
Dikkat!!
Birleştirme koşullarının doğru kurulması önemlidir. Yanlış JOIN koşulları beklenenden fazla kaydın güncellenmesine neden olabilir.
SQL UPDATE ve INSERT Arasındaki Farklar
SQL UPDATE ve INSERT komutları veritabanında farklı amaçlarla kullanılır. INSERT yeni bir kayıt eklemek için kullanılırken UPDATE mevcut kayıtları değiştirmek için kullanılır.

| Özellik | UPDATE | INSERT |
|---|---|---|
| Temel amaç | Mevcut verileri güncellemek | Yeni kayıt eklemek |
| Yeni satır oluşturma | Hayır | Evet |
| WHERE kullanımı | Güncellenecek kayıtları seçmek için | Temel INSERT söz diziminde kullanılmaz |
| Kullanım örneği | Ürün fiyatını değiştirmek | Yeni ürün eklemek |
Yeni bir müşteri eklemek için
Tabloya yeni bir satır eklenir.
Mevcut müşterinin şehrini değiştirmek için
Var olan kayıt güncellenir.
Her iki komut da veri yönetiminde kullanılır ancak gerçekleştirdikleri işlemler farklıdır.
SQL UPDATE ve DELETE Arasındaki Farklar
UPDATE, mevcut kayıtların belirli sütunlarını değiştirirken DELETE, koşulu karşılayan satırları tablodan kaldırır.
Müşterinin durumunu pasif yapmak için
Müşteri kaydı korunur, yalnızca durum bilgisi değişir.
Aynı müşterinin kaydını silmek için
İlgili satır tablodan silinir.
Hangisini seçmeli?
Kayıtların geçmişteki bilgilerinin korunması gereken sistemlerde doğrudan silme işlemi yerine durum alanının güncellenmesi tercih edilebilir.
SQL UPDATE Kullanırken Dikkat Edilmesi Gerekenler
UPDATE komutu yanlış kullanıldığında çok sayıda kaydın istemeden değiştirilmesine neden olabilir. Bu nedenle özellikle canlı veritabanlarında güncelleme işlemleri dikkatle gerçekleştirilmelidir.
- WHERE koşulunu kontrol edin: Güncellenmesi gereken kayıtları doğru belirlediğinizden emin olun. Gerektiğinde birincil anahtar kullanarak hedef kaydı seçin.
- Önce SELECT sorgusu çalıştırın: Güncellemeden önce aynı koşulla kayıtları listelemek, etkilenecek verileri görmenizi sağlar.
- Önemli işlemlerden önce yedek alın: Toplu veri güncellemelerinde geri yüklenebilir bir yedeğin bulunması, olası hataların etkisini azaltabilir.
- Etkilenen kayıt sayısını kontrol edin: UPDATE sorgusu çalıştırıldıktan sonra beklenen sayıda kaydın etkilendiğini doğrulayın. Veritabanı sistemine göre bildirilen satır sayısının anlamı farklılık gösterebilir.
- Büyük güncellemeleri planlayın: Çok sayıda satırı etkileyen işlemler veritabanında kilitlenmelere, yüksek kaynak kullanımına veya performans sorunlarına neden olabilir.
Özellikle yoğun kullanılan kurumsal hosting ortamlarında, uygulamanın veritabanı işlemlerini ve güncelleme sorgularının etkisini önceden değerlendirmek önemlidir.
SQL UPDATE İşlemi Nasıl Geri Alınır?
SQL UPDATE işlemlerinin geri alınabilmesi, kullanılan veritabanı sistemine ve işlemin nasıl gerçekleştirildiğine bağlıdır. Transaction desteği bulunan veritabanlarında, henüz tamamlanmamış bir işlem ROLLBACK komutuyla geri alınabilir.

Geri almak için ROLLBACK
İşlem henüz onaylanmadığı için güncelleme geri alınır.
Onaylamak için COMMIT
Değişiklikler kalıcı olarak onaylanır.
Bu örnek MySQL’de transaction destekleyen bir tablo motoru kullanıldığında geçerlidir.
Dikkat
İşlem onaylandıktan sonra ROLLBACK komutu geçmişte tamamlanmış güncellemeyi otomatik olarak geri almaz. Böyle durumlarda yedeklerden geri yükleme veya uygun kurtarma yöntemleri gerekebilir.
Sık Sorulan Sorular
SQL UPDATE WHERE olmadan kullanılır mı?
Evet. UPDATE komutu WHERE koşulu olmadan kullanılabilir. Ancak bu durumda tablodaki bütün satırlar güncellenir. Bu nedenle yalnızca tüm kayıtların değiştirilmesi istendiğinde koşulsuz UPDATE kullanılmalıdır.
SQL UPDATE birden fazla satırı günceller mi?
WHERE koşulunu karşılayan birden fazla satır aynı UPDATE sorgusu ile güncellenebilir. Mesela belirli kategorideki bütün ürünlerin fiyatları tek işlemde değiştirilebilir.
SQL UPDATE ile birden fazla sütun değiştirilebilir mi?
SET bölümünde sütunlar virgülle ayrılarak birden fazla alan aynı sorguda güncellenebilir. Bu işlem sırasında WHERE koşuluyla hedef kayıtlar belirlenebilir.
SQL UPDATE işlemi geri alınabilir mi?
UPDATE işlemi, uygun transaction desteği bulunan sistemlerde işlem onaylanmadan önce ROLLBACK komutuyla geri alınabilir. Onaylanmış işlemlerin geri alınması için ise yedekleme veya farklı kurtarma yöntemleri gerekebilir.
SQL UPDATE ve ALTER arasındaki fark nedir?
UPDATE, tablodaki mevcut verileri değiştirir. ALTER TABLE ise tablonun yapısını değiştirmek için kullanılır. Örnek olarak bir müşterinin adresini değiştirmek UPDATE, tabloya yeni sütun eklemek ise ALTER TABLE işlemidir.

Web barındırma teknolojilerine ve dijital dünyaya meraklı bir içerik üreticisi. Yıllardır hosting, sunucu yönetimi ve web sitesi performansı gibi konularda araştırmalar yapıyor ve edindiği deneyimleri bu blogda paylaşıyor.






Yorum Yap