ilişkili tablolarda update etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ilişkili tablolarda update etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

24 Mayıs 2011 Salı

Sql'de İlişkili Tablolarda Güncelleme(Update-Join)

Sql'de update işlemleri yaparken, şu ana kadar hep tek tablo üzerinden yaptık. Peki, birbiriyle ilişkili birden fazla tabloda update işlemi yaparsak nasıl bir yol izleyeceğiz?

Cevap oldukça basit. Biz yine de daha anlaşılır olması bakımından, senaryo üzerinden gidelim. İki tablomuz olsun. Öğrenci tablosunda Numara ve Ad tutulsun, Not tablosunda da ÖgrenciNo ve Puan tutulsun.

create Table Ogrenci
(
       OgrenciNo int,
       OgrenciAd nvarchar(20)
)
create Table Puan
(
       OgrenciNo int,
       Puan int
)

OgrenciNo alanı, Ogrenci tablosunda PrimaryKey iken, Puan tablosunda ForeignKey'dir. Böylece iki tabloyu ilişkilendirmiş olduk.

Birkaç kayıt girdikten sonra senaryomuz şöyle olsun. İsmi Ahmet Demir olan öğrencinin Puanını 50 yapalım. Gördüğünüz gibi tek tabloda update işlemi yapıyor olmamıza rağmen, verilen koşul başka bir tabloda. Burada iki tabloyu join ile birleştirip, ardından update işlemini yapacağız. Yazmamız gereken kod şu şekilde olmalıdır.

update Puan set Puan=50 from Puan p join Ogrenci o on p.OgrenciNo=o.OgrenciNo where OgrenciAd='Ahmet Demir'

Gördüğünüz üzere, syntax olarak, select ile yapılan joinleme işlemine çok benzer. select * from Puan ile başlayan joinleme sorgumuz, burada update Puan set Puan=50 from Puan olmuştur. Sorgu sonucunda, ismi Ahmet Demir olan öğrenci/öğrenciler 'in aldığı puanlar 50 olarak güncellenmiştir.