
MYSQL DERSLERİ ANASAYFA ÖNCEKİ DERS SIRADAKİ DERS
Konu başlığına tıklayarak detayları görebilirsiniz!!!
Bazı durumlarda veri kaybı yaşanmaması için tablomuzu silmeden çeşitli değişiklikler (kolon ekleme, silme, güncelleme, tablo adı değiştirme gibi) yapmamız gerekebilir. Bu gibi durumlarda yardımımıza ALTER TABLE komutu koşuyor. ALTER TABLE komutuna ek bazı komutları kullanarak tablomuz üzerinde değişiklikler yapabiliyrouz. İlk olarak tablomuza yeni bir kolon eklememizi sağlayan ALTER TABLE ve ADD COLUMN ifadesini kullanalım mesela. Tablomuza yonetmen adında yeni bir kolon eklemek için aşağıdaki kodu en alt kısma ekleyerek, programımızı RUN ediyoruz;
ALTER TABLE filmler ADD COLUMN yonetmen VARCHAR(255);


Bir önceki işlemin tam tersi olarak eğer tablomuzda bir kolon silmek istiyorsak ALTER TABLE ve DROP COLUMN ifadelerini bir arada kullanıyoruz. Aşağıdaki kodu yazıp programımızı RUN ettiğimizde yonetmen adlı kolonumuzun silindiğini göreceksiniz;
ALTER TABLE filmler DROP COLUMN yonetmen;


ALTER TABLE ile birlikte RENAME TO ifadesini kullandığımızda tablomuzun ismi değişecektir. Bu işlemle sadece isim değişikliği yapmış oluyoruz içerikte herhangi bir değişiklik olmuyor. Örneğimizde filmler olan tablo adımızı movies olarak değiştirmek için aşağıdaki kodu yazıyoruz;
ALTER TABLE filmler RENAME TO movies;

Tablomuzda bir alanı güncellemek istediğimizde ALTER TABLE ve UPDATE yapısını kullanıyoruz. Örneğimizden yola çıkacak olursak ve önceki desrlerde öğrendiklerimizi pekiştirmek amacıyla, filmimizin kaç yıllık olduğunu gösterecek yil adında bir sütun ekleyelim. Bunu yaparken tablomuz üzerindeki bilgileri de güncelleyelim. Filmin kaç yıllık olduğunu öğrenmek için bugünün tarihi anlamına gelen CURDATE() ifadesini kullanıyoruz ve bu tarihten yayin_tarihi'ni çıkarıyoruz. Çıkarma işlemimizi EXTRACT YEAR FROM ifadesini kullanarak gerçekleştiriyoruz. Yeni terimleri kafanıza takmayın ve kodu olduğu gibi yazın, onları detaylı şekilde işleyeceğiz ilerki derslerde.
ALTER TABLE filmler ADD COLUMN yil INT; UPDATE filmler SET yil = (EXTRACT(YEAR FROM CURDATE()) - EXTRACT(YEAR FROM yayin_tarihi))

