Kategoriler
SQL

MySQL ile Tablo Değiştirmek

MySQL ‘de tablo güncellemek için ALTER TABLE söz dizimi kullanılır. ALTER TABLE söz dizimi, tabloda yapılacak ekleme, güncelleme ve silme işlemine göre şekil almaktadır.

Söz Dizimi:
ALTER TABLE `table_name` ADD `column_name` column_definition;
ALTER TABLE `table_name` CHANGE `current_column_name` `change_column_name` type_name column_definition;
ALTER TABLE `table_name` MODIFY `current_column_name` type_name column_definition;
ALTER TABLE `table_name` DROP `column_name`;

Örnek:
ALTER TABLE `deneme_tablo` ADD `sutun_isim` VARCHAR(50) NOT NULL;
ALTER TABLE `deneme_tablo` CHANGE `sutun_isim` `sutun_isim2` INT(10) NOT NULL;
ALTER TABLE `deneme_tablo` MODIFY`sutun_isim` INT(10) NOT NULL;
ALTER TABLE `deneme_tablo` DROP `sutun_isim`;

MySQL ‘de tablo düzenleme işleminde bir çok varyasyon mevcuttur. Bunlar şu şekilde;

Söz dizimine tablonun adının başına veritabanı adını ekleyebilirsiniz;
ALTER TABLE `deneme_db`.`deneme_tablo` ADD `sutun_isim` VARCHAR(50) NOT NULL;

Tabloya eklenecek sütün eğer tüm sutunların en başına eklenecek ise FIRST ifadesi eklenir:
ALTER TABLE `deneme_tablo` ADD `sutun_isim` VARCHAR(50) NOT NULL FIRST;

Mevcut sütünün sıralamasını en başa almak için;
ALTER TABLE `deneme_tablo` CHANGE `ID` `ID` INT(10) NOT NULL FIRST;

Eklenecek sütün istenilen bir sütünün sonuna eklenecek ise AFTER sütün_ad eklenir;
ALTER TABLE `deneme_tablo` ADD `sutun_isim` VARCHAR(50) NOT NULL AFTER `sutun1`;

Mevcut sütünün bir sütünün sonrasına taşımak için AFTER sütün_ad kullanılır;
ALTER TABLE `deneme_tablo` CHANGE `sutun_isim` `sutun_isim` INT(10) NOT NULL AFTER `sutun1`;

Sütunları Yeniden Adlandırma, Yeniden Tanımlama ve Yeniden Sıralama

CHANGE, MODIFY ve ALTER yan tümceleri, mevcut sütunların adlarının ve tanımlarının değiştirilmesini sağlar. Bu karşılaştırmalı özelliklere sahipler:

CHANGE: Bir sütunu yeniden adlandırabilir ve tanımını veya her ikisini birden değiştirebilir. MODIFY’den daha fazla kabiliyete sahiptir, ancak bazı işlemler için kolaylık pahasına. CHANGE, sütunun yeniden adlandırılmaması durumunda iki kez adlandırılmasını gerektirir. FIRST veya AFTER ile sütunları yeniden sıralayabilirsiniz.

MODIFY: Bir sütun tanımını değiştirebilir ancak adını değiştiremez. Bir sütun tanımını yeniden adlandırmadan değiştirmek için CHANGE daha kullanışlıdır. FIRST veya AFTER ile sütunları yeniden sıralayabilirsiniz.

ALTER: Yalnızca bir sütun varsayılan değerini değiştirmek için kullanılır.

CHANGE, standart SQL için bir MySQL uzantısıdır. MODIFY, Oracle uyumluluğu için bir MySQL uzantısıdır.