Yazdır 12 Haziran 2010 Cumartesi (Hit: 44259)

Kayıt Güncelleme (update)

Tabloya kaydedilmiş bir bilgiyi güncellemek yani düzeltmek için şu SQL komutu kullanılır:

update tablo_adi set alan1=değer1, alan2=değer2, ... where koşul;

Belirtilen koşula uyan kayıtların set ifadesinden sonra belirtilen alanları güncelleştirilir. Burada yazılan koşula karşılık tablodan hangi kayıtların etkileneceğine dikkat ediniz. Eğer kayıt belirtmezseniz tüm kayıtlar etkilenir.

Genelde güncelleştirmeler tek bir kayıt üzerinde yapılır. Dolayısıyla güncellenecek kaydı ifade etmek için koşulda birincil anahtar alanı kullanılır. Çünkü birincil anahtara karşılık tabloda sadece bir kayıt olabilir.

Örneğin; ogrenci_no alanı birincil anahtar ise where ogrenci_no=71; ifadesine karşılık tabloda tek bir kayıt vardır. Ancak where adi='Ahmet'; gibi bir koşula karşılık tabloda bir çok kayıt olabilir. Özetle güncellenecek kayıt(lar)ı ifade eden koşulu doğru belirtmeye dikkat ediniz.

 

Örnek: Aşağıdaki siniflar tablosunda sınıf kodu 12andbls olan kaydın sınıf adını 12 AND Bilişim olarak güncelleyelim.

sinif_kodu sinif_adi
12blsa 12 Bilişim A
12blsb 12 Bilişim B
12andbls 12 Anadolu Bilişim
update siniflar set sinif_adi='12 AND Bilişim' where sinif_kodu='12andbls';

 

Örnek: Aşağıdaki ogrenciler tablosunda;

ogrenci_no adi soyadi cinsiyeti sinif_kodu
54 Ahmet Özdemir e 12blsa
67 Hatice Eren k 12blsa
18 Mahir Seren e 12blsb

1) 54 nolu öğrencinin adını Aliye cinsiyetini k ve sınıfını 12andbls olarak değiştirelim.

update ogrenciler set adi='Aliye', cinsiyeti='k', sinif_kodu='12andbls' where ogrenci_no=54;

2) 67 nolu öğrencinin numarasını 104 olarak değiştirelim.

update ogrenciler set ogrenci_no=104 where ogrenci_no=67;

Buradaki değişiklik birincil anahtarda yapıldığından, eğer bu alan ile ilişkili başka bir tabloda alan varsa o tablodaki alan da güncellenmelidir. Depolama motoru olarak MyISAM kullanıldıysa bu değişikliği kendiniz yapmalısnız. Eğer ki InnoDB depolama moturunu kullanarak foreign key ve on update cascade ifadesini kullanarak bu tabloları oluşturduysanız ilişkili tablolardaki güncellemeler otomatik yapılacaktır.

Biz aşağıdaki notlar tablosuyla ogrenciler tablosunun ilişkili olduğunu düşünürsek; güncellenen öğrenci numarasını, notlar tablosunda da şu şekilde güncellemeliyiz:

update notlar set ogrenci_no=104 where ogrenci_no=67;

 

Örnek: Aşağıdaki notlar tablosunda 54 nolu öğrencinin ted dersinin notunu 85 olarak değiştirelim.

ogrenci_no ders_kodu notu
54 mat 40
72 ted 70
54 ted 40
71 geo 60
update notlar set notu=85 where ogrenci_no=54 and ders_kodu='ted';

 

Örnek: Aşağıdaki uyeler tablosundaki 5 nolu üyenin email adresini mustafayaren@phpdefteri.com ve son giriş tarihini 12.06.2010 olarak değiştirelim.

uye_id adi soyadi dogum_yili email uyelik_tarihi son_giris_tarihi
5 Mustafa Yaren 1985 m_yaren@phpdefteri.com 2010-06-11 2010-06-11
update uyeler set email='mustafayaren@phpdefteri.com', son_giris_tarihi='2010-06-12' where uye_id=5;

Bu site meslek liselerinde bilişim bölümü web programcılığı dalında okutulan internet programcılığı dersine yardımcı olması için tasarlanmıştır. İletişim için iletisim@phpdefteri.com
Apache PHP MySQL PhpMyAdmin EasyPHP Xampp AppServ Wamp W3School

www.phpdefteri.com © 2010