Alter Table; Bir tablonun tanımını değiştirir. Veritabanındaki satırları güncellemeye ek olarak, veritabanı içindeki tabloların yapısını da değiştirmek gereke bilir. Bu amaç için, ALTER TABLE ifadesi kullanılır. MySQL ile bir tabloda istediğiniz kadar değişiklik yapabilirsiniz. Değiştirme cümleciklerinin her biri tablonun farklı yönlerini değiştirmek için kullanılabilir. Alter Table’nin çeşitli alt kullanımları vardır.
| ALTER TABLE İfadesiyle Yapılabilen Değişiklikler |
|
| Söz Dizimi |
Açıklama |
| ADD [COLUMN] column_definition [FIRST | AFTER col_name ] |
Belirtilen konuma yeni bir sütun ekler. column_definition’ın bir ad ve tipe ihtiyaç duyar. |
| ADD [COLUMN] (column_definition,…) |
Tablonun sonuna bir veya daha fazla sütun ekler. |
| ADD {INDEX|KEY} [index_name] [index_type] (index_col_name,…) |
Tabloya velirtilen sütun veya sütunlar üzerinde bir index oluşturur. |
| ADD [CONSTRAINT [symbol]]PRIMARY KEY [index_type] (index_col_name,…) |
Belirtilen sütun veya sütunları tablonun birincil anahtarı yapar. |
| ADD [CONSTRAINT [symbol]]UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,…) |
Belirtilen sütun ve sütunlar üzerinde tabloya benzersiz bir index ekler. |
| ADD [CONSTRAINT [symbol]]FOREIGN KEY [index_name] (index_col_name,…)[reference_definition] |
Bir InnDB tablosuna yabancı bir anahtar ekler. |
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} |
Belirli bir sütunun varsayılan değerini ekler veya kaldırır. |
| CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name] |
Column adlı sütunu, listelenmiş tanıma sahip olacak şekilde listeler. |
| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name] |
CHANGE benzer. Adları değil, sütun tiplerini değiştirmek için kullanılır. |
| DROP [COLUMN] col_name |
Belirtilen sütunu siler |
| DROP PRIMARY KEY |
Birincil indexi siler. |
| DROP {INDEX|KEY} index_name |
Belirtilen indexi siler. |
| DROP FOREIGN KEY fk_symbol |
Yabancı anahtarı siler. |
| DISABLE KEYS |
İndex güncelleme özelliğinin etkinliğini kaldırır. |
| ENABLE KEYS |
İndex güncelleme özelliğinin etkinleştirir. |
| RENAME [TO] new_tbl_name |
Bir tabloyu yeniden adlandırır. |
| ORDER BY col_name [, col_name] … |
Tabloyu satırlar belirli bir şekilde sıralanmış şekilde yeniden oluşturur. |
| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] |
Metin tabanlı sütunların hepsini belirtilen kümesine dönüştürür. |
| [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name] |
Varsayılan karakter kümesini ayarlar. |
| DISCARD TABLESPACE |
Bir InnDB dosyasının temelini oluşturan tablespace dosyasını siler. |
| IMPORT TABLESPACE |
Bir InnDB dosyasının temelini oluşturan tablespace dosyasını yeniden oluşturur.. |
Örnek; Müşteri tablosunda adların 25 karaktere kadar uzun olmasına izin verilmiş olsun. Verileri almaya başladıktan sonra bazı isimlerin çok uzun olduğu görülsün. Bu durumu, sütunu 50 karakter uzunluğunda olacak şekilde değiştirilerek düzeltile bilir.
Çok sık ortaya çıkan bir durum, bir sütun ekleme ihtiyacıdır.
Örnek; Müşteri tablosunda müşterilerin e-mail adreslerini de almak istediğimiz düşünelim. Ve tablomuzda böyle bir sütun önceden yoktu. Bu durumu, yeni bir sütun eklenecektir.
Eklenen bir sütundan kurtulma isteği de yine çok sık karşılaşılan bir durumdur. Yukarda ekeldiğimiz sütunu aşağıdaki gibi silebiliriz.
Örnek; Öğrenci kayıt bilgileri için oluşturulmuş olan ogrenci tablosunun adını, ogr olarak değiştirmek için şu kodlar yazılır..
