Anasayfa » SQL UPDATE Nedir?
SQL Update Nedir
Nasıl Yapılır • Teknoloji

SQL UPDATE Nedir?

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:

Söz dizimi
UPDATE tablo_adi
SET sutun_adi = yeni_deger
WHERE kosul;

Bu sorguda kullanılan ifadelerin görevleri şöyledir:

UPDATEGüncellenecek tabloyu belirtir.
SETDeğiştirilecek sütunu ve yeni değerini tanımlar.
WHEREGüncellemenin hangi kayıtları etkileyeceğini belirler.
SQL Update Söz Dizimi

Mesela musteriler tablosunda kimlik numarası 5 olan müşterinin şehir bilgisini değiştirmek için aşağıdaki sorgu kullanılabilir:

SQL
UPDATE musteriler
SET sehir = ‘Ankara’
WHERE id = 5;

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:

SQL
UPDATE urunler
SET fiyat = 750
WHERE id = 12;

Bu sorgu, ürün kimliği 12 olan kaydın fiyatını 750 olarak değiştirir.

SQL Update Where Kullanımı

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

SQL
UPDATE musteriler
SET ad = ‘Ahmet’,
sehir = ‘İzmir’,
durum = ‘aktif’
WHERE id = 8;

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.

SQL
UPDATE personeller
SET maas = 45000
WHERE id = 3;

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:

SQL
UPDATE musteriler
SET durum = ‘pasif’
WHERE son_giris_tarihi < ‘2025-01-01’;

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:

SQL
UPDATE urunler
SET fiyat = fiyat * 1.10;

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:

SQL
UPDATE urunler
SET fiyat = fiyat * 1.10
WHERE kategori_id = 4;

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.

SQL
UPDATE musteriler
SET telefon = ‘Belirtilmedi’
WHERE telefon IS NULL;

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:

MySQL
UPDATE urunler AS u
INNER JOIN kategoriler AS k
ON u.kategori_id = k.id
SET u.indirim_orani = k.indirim_orani
WHERE k.aktif = 1;

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.

SQL Update Insert ve Delete Farkı
Ö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

INSERT
INSERT INTO musteriler (ad, sehir)
VALUES (‘Ayşe’, ‘Bursa’);

Tabloya yeni bir satır eklenir.

Mevcut müşterinin şehrini değiştirmek için

UPDATE
UPDATE musteriler
SET sehir = ‘Antalya’
WHERE id = 10;

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

UPDATE
UPDATE musteriler
SET durum = ‘pasif’
WHERE id = 15;

Müşteri kaydı korunur, yalnızca durum bilgisi değişir.

Aynı müşterinin kaydını silmek için

DELETE
DELETE FROM musteriler
WHERE id = 15;

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

SQL Update Geri Alma

Geri almak için ROLLBACK

MySQL
START TRANSACTION;
UPDATE urunler
SET fiyat = 500
WHERE id = 7;
ROLLBACK;

İşlem henüz onaylanmadığı için güncelleme geri alınır.

Onaylamak için COMMIT

MySQL
START TRANSACTION;
UPDATE urunler
SET fiyat = 500
WHERE id = 7;
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

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.

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.

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.

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.

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.

Yorum Yap

Click here to post a comment