MS SQL Server Eğitimleri 34 – T-SQL Update İşlemi
MS SQL eğitimlerimize SQL’in önemli konularından UPDATE işlemi ile devam ediyoruz.
Veri tabanındaki kayıtların güncelleme işlemleri UPDATE ifadesi ile yapılır.
Mesela şöyle bir senaryo düşünelim. Bir iş yerinde IK da çalışıyorsunuz personellerinizin bilgilerini tutuyorsunuz kullandığınız ERP üzerinde. Yılbaşında Çalışanlarınız belli bir miktar maaşlarına zam aldılar. Sisteminizde tuttuğunuz maaş bilgileri de var. Böyle bir durumda herkesi yeninden oluşturup yeni maaşlarını girmek mi daha mantıklık yoksa var olan maaş bilgisini yenisi ile güncellemek mi? İşte bu tür veri güncelleme işlemlerini yapmamıza yardımcı olacaktır.
UPDATE Kullanımı
1 2 3 4 5 6 7 8 |
UPDATE TABLOİSMİ SET KOLONİSMİ1='YENİ DEĞER1', KOLONİSMİ2='YENİ DEĞER2', . . . KOLONİSMİ='YENİDEĞERN' WHERE ŞARTLAR |
Şimdi birde sözle ifade edelim.
Öncelikle UPDATE diyoruz. Daha sonra hangi tablo üzerinde değişiklik yapacaksak o tablonun ismini yazıyoruz.
Daha sonra SET yani Türkçe ifadesi ile ayarla diyoruz.
Ve hangi kolonların yeni değerleri ne olacaksa onları aralarında virgül koyarak giriyoruz.
En sonda bu update işleminin hangi şartlarda çalışması gerektiğini söylediğimiz Where ifadelerini kullanıyoruz. Select ifadesi ile kullandığımız tüm Where durumları burada da kullanılabilir.
Dikkat: Where ile herhangi bir şart yazmadan bir Update işlemi gerçekleştirirseniz. tablodaki tüm kayıtlar üzerinde yapmaya çalıştığınız Update işlemini gerçekleştirir.
Bu kadar kelam yeter. Şimdi canlı örneklerimizle olayı anlamaya çalışalım.
XENONBOX veritabanı üzerinde CUSTOMER tablosunda öncelikle bir SELECT atıp verilerimize bir bakalım.
1 |
SELECT * FROM CUSTOMER |
1 | Maria | Anders | Berlin | Germany | 030-0074321 |
2 | Ana | Trujillo | México D.F. | Mexico | (5) 555-4729 |
3 | Antonio | Moreno | México D.F. | Mexico | (5) 555-3932 |
4 | Thomas | Hardy | London | UK | (171) 555-7788 |
5 | Christina | Berglund | Luleå | Sweden | 0921-12 34 65 |
6 | Hanna | Moos | Mannheim | Germany | 0621-08460 |
7 | Frédérique | Citeaux | Strasbourg | France | 88.60.15.31 |
8 | Martín | Sommer | Madrid | Spain | (91) 555 22 82 |
9 | Laurence | Lebihan | Marseille | France | 91.24.45.40 |
10 | Elizabeth | Lincoln | Tsawassen | Canada | (604) 555-4729 |
11 | Victoria | Ashworth | London | UK | (171) 555-1212 |
12 | Patricio | Simpson | Buenos Aires | Argentina | (1) 135-5555 |
13 | Francisco | Chang | México D.F. | Mexico | (5) 555-3392 |
14 | Yang | Wang | Bern | Switzerland | 0452-076545 |
15 | Pedro | Afonso | Sao Paulo | Brazil | (11) 555-7647 |
16 | Elizabeth | Brown | London | UK | (171) 555-2282 |
17 | Sven | Ottlieb | Aachen | Germany | 0241-039123 |
18 | Janine | Labrune | Nantes | France | 40.67.88.88 |
19 | Ann | Devon | London | UK | (171) 555-0297 |
20 | Roland | Mendel | Graz | Austria | 7675-3425 |
Maria Anders’in şehri yanlış girilmiş olsun. Aslında Maria hanım Berlin’de değil Münih’de yaşıyor. O zaman CITY kolonunda böyle bir güncelleme yapmamız gerek.
Ama Maria’yı kesin net bildirmemiz gerek ki gidip başkalarının şehirlerini de Münih yapmasın.
1 |
UPDATE CUSTOMER SET CITY='Münih' WHERE PHONE='030-0074321' |
Telefon numarasından kişiyi yakalamaya çalıştım çünkü bir telefon numarası birden fazla kişiye verilemez. Delete ve Update işlemlerinde birincil anahtar üzerinden ya da oluşturulmuş indexler üzerinden giderseniz verilerinizin güvenliği sağlamış olursunuz bu önemlidir.
Siz bu işlemi başarılı bir şekilde yaptıysanız SQL üzerinden şöyle bir uyarı alacaksınız.
Bir kaydın bu işlemden etkilendiğini size bildiriyor. İşlem başarılı bir şekilde gerçekleşti mi şimdi bir SELECT atarak bunu görelim.
1 |
SELECT * FROM CUSTOMER |
İstediğimiz işlemin başarılı bir şekilde gerçekleştiğini gördük.
Bir örnek olması için Where şartını ortadan kaldırırsam ne olura bir bakalım.
1 |
UPDATE CUSTOMER SET CITY='Münih' |
1 | Maria | Anders | Münih | Germany | 030-0074321 |
2 | Ana | Trujillo | Münih | Mexico | (5) 555-4729 |
3 | Antonio | Moreno | Münih | Mexico | (5) 555-3932 |
4 | Thomas | Hardy | Münih | UK | (171) 555-7788 |
5 | Christina | Berglund | Münih | Sweden | 0921-12 34 65 |
6 | Hanna | Moos | Münih | Germany | 0621-08460 |
7 | Frédérique | Citeaux | Münih | France | 88.60.15.31 |
8 | Martín | Sommer | Münih | Spain | (91) 555 22 82 |
9 | Laurence | Lebihan | Münih | France | 91.24.45.40 |
10 | Elizabeth | Lincoln | Münih | Canada | (604) 555-4729 |
11 | Victoria | Ashworth | Münih | UK | (171) 555-1212 |
Artık herkesin şehri Münih. Bu işlemi geri almak eski durumuna getirmek eğer elinizde yakın zamanda alınmış bir BACKUP dosyanız yok ise ne kadar zor ve meşakkatli anlayabiliyorsunuzdur. O yüzden bu tür işlemleri yaparken azami dikkat diyoruz.
Bu dersimizde bu kadardı.
Bir sonraki yazımda görüşmek üzere.