SQL UPDATE komutu kullanımı örneği (SQL UPDATE command usage example)

UPDATE güncellemek anlamına gelmektedir.
UPDATE veritabanında daha önce var olan verileri değiştirmek için kullanılır.
Genel olarak UPDATE komutu ile tablonun PRIMARY KEY alanlarını oluşturan değerler değiştirilemez.

Genel Kullanımı aşağıdaki gibidir.

UPDATE table_name
  SET set_clause
 WHERE where_clause

table_Name = Değiştirilecek tablonun adı. Örneğimiz için PERSONEL
set_clause = Değişiklik yapılacak alanlar ve değerleri. Örneğimiz için ” NAME=’HALİL KINIK’, CITY=’KUTAHYA’, DEPARTMANID=60″
where_clause = Değiştirilecek satırları filtreleyeceğimi değer örneğimiz için personelid = 1.
WHERE komut isteğe bağlıdır, eğer WHERE komutu boş bırakılırsa istenen işlemler tüm satırlar için gerçekleştirilir.

Aşağıdaki komut personel id’si 1 olan personelin adını HALİL KINIK, city = KUTAHYA ve departmanını 60 olarak değiştirir.

UPDATE PERSONEL
   SET NAME = 'HALİL KINIK', CITY = 'KUTAHYA', DEPARTMANID = 60
 WHERE PERSONELID = 1

Güncellme işlemi sırasında matematik işlem yapabiliriz.

UPDATE PERSONEL
   SET age = age + 20
 WHERE PERSONELID = 1

Burada yine veritabanından SUBQUERY ile seçme yapıp orda istenen şarta uygun satırlarda değişiklik yapabiliriz.

Aşağıdaki SQL departman tablosunun sayac alanını bu departmanda çalışan kişi sayısı ile doldurmaktadır.

UPDATE departman
   SET sayac = ( SELECT COUNT( * ) FROM personel WHERE personel.departmanid = departman.departmanid )
 WHERE departmanid = 10

Aşağıdaki SQL departman tablosunda çalışanı olmayan departmanların sayaç alanını sıfır le doldurmaktadır.
Normalde yukardaki personel tablosundan sayaç UPDATE eden kod bu işi de yapar, sadece fikir vermesi için ilave edilmiştir.

UPDATE departman
   SET sayac = 0
 WHERE departmanid NOT IN ( SELECT departmanid FROM personel WHERE personel.departmanid = departman.departmanid)
Share on Facebook0Tweet about this on TwitterShare on Google+0Share on StumbleUpon0Share on Reddit0

1 Comment

  1. Ali Kemal says: Reply

    Çok açıklayıcı ve çeşitli yollardan anlatmışsın. Teşekkürler. İşime yaradı.

Leave a Reply


*