Önceden oluşturulmuş bir tablonun yapısını değiştirmek için MySQL ALTER TABLE kullanılmaktadır.
Bu eğiticide, sütun ekleme veya kaldırma, sütun özelliklerini değiştirme, vb. mevcut tablo yapısını değiştiren MySQL ALTER TABLE ifadesini öğreneceksiniz.
MySQL ALTER TABLE Deyimi
ALTER TABLE ifadesi, mevcut bir tablonun yapısını değiştirir. Bir sütun eklemenize, bir sütunu bırakmanıza, sütunun veri türünü değiştirmenize, birincil anahtar eklemenize, tabloyu yeniden adlandırmanıza ve daha pek çok şeye olanak sağlar.
Aşağıda ALTER TABLE deyimi sözdizimini gösterilir:
1 2 3 | ALTER TABLE tablo_adi eylem1[,eylem2,…] |
Mevcut bir tablonun yapısını değiştirmek için:
- İlk önce, ALTER TABLE yan tümcesinden sonra değiştirmek istediğiniz tablo adını belirtin.
- İkincisi, tabloya uygulamak istediğiniz bir dizi işlemi listeleyin. Bir eylem, yeni bir sütun eklemek, birincil anahtar eklemek veya tabloyu yeniden adlandırmak gibi bir şey olabilir. ALTER TABLE ifadesi, tek bir ALTER TABLE ifadesinde birden fazla eylem uygulamanıza izin verir, eylemler virgülle (,) ayrılır.
ALTER TABLE ifadesini uygulamak için yeni bir tablo oluşturalım.
Aşağıdaki ifade, örnek veritabanındaki gorevler adlı yeni bir tablo oluşturur:
1 2 3 4 5 6 7 8 9 10 | CREATE TABLE IF NOT EXISTS gorevler ( gorev_id INT, baslik VARCHAR(255) NOT NULL, baslama_zamani DATE, bitis_zamani DATE, tanim TEXT, PRIMARY KEY (gorev_id) ) ENGINE=INNODB; |
MySQL ALTER TABLE deyimini kullanarak sütunları değiştirme
Bir sütunun otomatik artış özelliğini ayarlamak için MySQL ALTER TABLE deyimini kullanma
Görev tablosuna yeni bir satır eklerken, gorev_id sütununun değerinin otomatik olarak artırılmasını istediğinizi varsayalım. Bunu yapmak için, gorev_id sütunun niteliğini AUTO_INCREMENT olarak ayarlamak için ALTER TABLE ifadesini kullanalım.
1 2 3 4 | ALTER TABLE gorevler CHANGE COLUMN gorev_id gorev_id INT(11) NOT NULL AUTO_INCREMENT; |
Bir sütunu birincil anahtar olarak ayarlamak için MySQL ALTER TABLE deyimi kullanımı
Mevcut tablo üzerinde gerekli değil ancak bazı durumlarda gerekli olabileceğini düşünerek bir sütunu birincil anahtar yani primary key olarak ayarlamak için aşağıdaki sorgulardan bir tanesi kullanılabilir.
1 2 3 4 | ALTER TABLE gorevler ADD PRIMARY KEY (gorev_id); |
yada aşağıdaki sorguyu da birincil anahtar yapmak için kullanabilirsiniz. (PK_gorevler: kısıta verilen isimdir.)
1 2 3 4 | ALTER TABLE gorevler ADD CONSTRAINT PK_gorevler PRIMARY KEY (gorev_id,baslik); |
Bir tablo örneğine yeni bir sütun eklemek için MySQL ALTER TABLE deyimini kullanma
Yeni iş gereksinimleri nedeniyle, görevler tablosundaki her görevin tamamlanma yüzdesini kaydetmek için durum adlı yeni bir sütun eklemeniz gerekir. Bu durumda, görevler tablosuna yeni bir sütun eklemek için ALTER TABLE’ı kullanabiliriz.
1 2 3 4 5 | ALTER TABLE gorevler ADD COLUMN durum DECIMAL(2,1) NULL AFTER tanim; |
Bir tablo örneğindeki bir sütunu bırakmak için MySQL ALTER TABLE öğesini kullanma
Görevlerin tanımını görevler tablosunda saklamak istemediğinizi ve kaldırmak zorunda olduğunuzu varsayalım. Aşağıdaki ifade, görevler tablosunun tanim sütununu kaldırmanıza olanak sağlar.
1 2 3 4 | ALTER TABLE gorevler DROP COLUMN tanim; |
MySQL ALTER TABLE deyimini kullanarak tabloları yeniden adlandırma
Bir tabloyu yeniden adlandırmak için ALTER TABLE ifadesini kullanabilirsiniz. Bir tabloyu yeniden adlandırmadan önce, değişikliğin hem veritabanını hem de uygulama katmanlarını etkileyip etkilemediğini anlamak için ciddi şekilde düşünmeniz gerektiğini unutmayın. MySQL buna izin verse de çok mantıklı olmadığını belirtmek isterim.
Aşağıdaki ifade, gorevler tablosunu islemler tablosuna yeniden adlandırır.
1 2 3 4 | ALTER TABLE gorevler RENAME TO islemler; |
Bu eğitimde, mevcut tablo yapısını değiştirmek ve tabloyu yeniden adlandırmak için MySQL ALTER TABLE ifadesinin nasıl kullanılacağını öğrendiniz.
1 Yorum