MYSQL - DEĞİŞTİRME, BIRAKMA, YENİDEN ADLANDIRMA, DEĞİŞTİRME

Anonim

ALTER KOMUTU NEDİR?

Diyor ki, Değişim tek sabittir

Zamanla iş gereksinimleri de değişir. İş gereksinimleri değiştikçe, Veritabanı tasarımlarının da değişmesi gerekir.

MySQL , değişiklikleri halihazırda var olan veritabanı tasarımına dahil etmemize yardımcı olan ALTER işlevini sağlar .

Alter komutu, bir veritabanının yaşam döngüsü sırasında değişmesi gerekebilecek mevcut bir veritabanını, tabloyu, görünümü veya diğer veritabanı nesnelerini değiştirmek için kullanılır.

Diyelim ki veritabanı tasarımımızı tamamladık ve uygulandı. Veritabanı kullanıcılarımız bunu kullanıyor ve daha sonra bazı önemli bilgilerin tasarım aşamasında dışarıda bırakıldığını fark ediyorlar. Mevcut verileri kaybetmek istemiyorlar, sadece yeni bilgileri dahil etmek istiyorlar. Alter komutu bu tür durumlarda kullanışlıdır. Bir alanın veri türünü say dizeden sayısal olarak değiştirmek, alan adını yeni bir adla değiştirmek ve hatta bir tabloya yeni bir sütun eklemek için alter komutunu kullanabiliriz.

Sözdizimini değiştir

Zaten var olan bir tabloya sütun eklemek için kullanılan temel sözdizimi aşağıda gösterilmiştir

ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;

İŞTE

  • "ALTER TABLE" tablo_adı " , MySQL sunucusuna " tablo_adı " adlı tabloyu değiştirmesini söyleyen komuttur.
  • "SÜTUN EKLE" sütun_adı "veri_türü" , MySQL sunucusuna "veri_türü" veri türüne sahip "sütun_adı" adlı yeni bir sütun eklemesini söyleyen komuttur.

Myflix'in çevrimiçi faturalama ve ödemeleri başlattığını varsayalım. Bu amaçla üyeler tablomuza kredi kartı numarası için bir alan eklememiz istendi. Bunu yapmak için ALTER komutunu kullanabiliriz. Herhangi bir değişiklik yapmadan önce üyeler tablosunun yapısına bakalım. Aşağıda gösterilen komut dosyası bunu yapmamıza yardımcı olur.

SHOW COLUMNS FROM `members`;
 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

Üyeler tablosuna yeni bir alan eklemek için aşağıda gösterilen script'i kullanabiliriz.

ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);

Yukarıdaki komut dosyasını MySQL'de Myflixdb'ye karşı yürütmek, üye tablosuna veri türü olarak VARCHAR ile kredi kartı numarası adlı yeni bir sütun ekler. Sütunları göster komut dosyasının yürütülmesi bize aşağıdaki sonuçları verir.

SHOW COLUMNS FROM `members`;
 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL
credit_card_number varchar(25) YES

Dönen sonuçlardan da görebileceğiniz gibi üyeler tablosuna kredi kartı numarası eklenmiştir. Üyelerin verilerinde yer alan veriler, yeni sütunun eklenmesinden etkilenmez.

DROP KOMUTU NEDİR?

DROP komutu,

  1. MySQL sunucusundan bir veritabanını silin
  2. Veritabanından bir nesneyi (Tablo, Sütun gibi) silin.

Şimdi DROP komutunu kullanan pratik örneklere bakalım.

Alter Command ile ilgili bir önceki örneğimizde, üyeler tablosuna kredi kartı numarası adlı bir sütun ekledik.

Çevrimiçi faturalandırma işlevinin biraz zaman alacağını ve kredi kartı sütununu BIRAKMAK istediğimizi varsayalım.

Aşağıdaki betiği kullanabiliriz

ALTER TABLE `members` DROP COLUMN `credit_card_number`;

Yukarıdaki komut dosyasını çalıştırmak, kredi_card_number sütununu üyeler tablosundan bırakır

Şimdi sütunumuzun bırakılıp bırakılmadığını onaylamak için üyeler tablosundaki sütunlara bakalım.

SHOW COLUMNS FROM `members`;

Yukarıdaki betiği MySQL çalışma tezgahında myflixdb ile çalıştırmak bize aşağıdaki sonuçları verir.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

Kredi kartı numarasının alanlar listesinden çıkarıldığına dikkat edin.

DAMLA TABLOSU

Veritabanından bir tablo DROP için sözdizimi aşağıdaki gibidir -

DROP TABLE `sample_table`;

Bir örneğe bakalım

DROP TABLE `categories_archive`;

Yukarıdaki komut dosyasını çalıştırmak, veritabanımızdan "category_archive" adlı tabloyu siler.

YENİDEN ADLANDIRMA KOMUTU NEDİR?

Yeniden adlandırma komutu, mevcut bir veritabanı nesnesinin (Tablo, Sütun gibi) adını yeni bir adla değiştirmek için kullanılır .

Bir tablonun yeniden adlandırılması, içindeki herhangi bir veriyi kaybetmesine neden olmaz.

Sözdizimi:-

Yeniden adlandırma komutu aşağıdaki temel sözdizimine sahiptir.

RENAME TABLE `current_table_name` TO `new_table_name`;

Movierentals tablosunu movie_rentals olarak yeniden adlandırmak istediğimizi varsayalım, bunu başarmak için aşağıda gösterilen komut dosyasını kullanabiliriz.

RENAME TABLE `movierentals` TO `movie_rentals`;

Yukarıdaki komut dosyası çalıştırıldığında, "movierentals" tablosu "movie_rentals" olarak yeniden adlandırılır.

Şimdi movie_rentals tablosunu orijinal adıyla yeniden adlandıracağız.

RENAME TABLE `movie_rentals` TO `movierentals`;

ANAHTAR KELİME DEĞİŞTİR

Anahtar Kelimeleri Değiştir, şunları yapmanızı sağlar:

  1. Sütunun Adını Değiştir
  2. Sütun Veri Türünü Değiştir
  3. Sütun Kısıtlamalarını Değiştirin

Bir örneğe bakalım. Üyeler tablosundaki tam adlar alanı varchar veri türündedir ve genişliği 150'dir.

SHOW COLUMNS FROM `members`;

Yukarıdaki betiği MySQL çalışma tezgahında myflixdb ile çalıştırmak bize aşağıdaki sonuçları verir.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(150) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

Varsayalım ki istiyoruz

  1. Alan adını "full_names" yerine "fullname" olarak değiştirin
  2. 250 genişliğinde char veri türüne değiştirin
  3. BOŞ DEĞİL kısıtlaması ekleyin

Bunu aşağıdaki gibi değiştirme komutunu kullanarak başarabiliriz -

ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;

Yukarıdaki betiği MySQL çalışma tezgahında myflixdb'ye karşı çalıştırmak ve ardından yukarıda verilen gösteri sütunları betiğini çalıştırmak aşağıdaki sonuçları verir.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(250) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

ANAHTAR KELİME DEĞİŞTİR

MODIFY Keyword şunları yapmanızı sağlar:

  1. Sütun Veri Türünü Değiştirin
  2. Sütun Kısıtlamalarını Değiştirin

Yukarıdaki DEĞİŞTİR örneğinde, alan adını ve diğer ayrıntıları değiştirmemiz gerekiyordu. Alan adının CHANGE ifadesinden çıkarılması bir hata oluşturacaktır. Alan adını etkilemeden yalnızca veri türünü ve alandaki kısıtlamaları değiştirmekle ilgilendiğimizi varsayalım, bunu başarmak için MODIFY anahtar sözcüğünü kullanabiliriz.

Aşağıdaki komut dosyası "tam ad" alanının genişliğini 250'den 50'ye değiştirir.

ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;

Yukarıdaki komut dosyasını MySQL çalışma tezgahında myflixdb'ye karşı çalıştırmak ve ardından yukarıda verilen gösteri sütunları komut dosyasını çalıştırmak aşağıda gösterilen aşağıdaki sonuçları verir.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(50) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

ANAHTAR KELİMEDEN SONRA

Tabloda belirli bir konuma yeni bir sütun eklemek istediğimizi varsayalım.

Alter komutunu AFTER anahtar sözcüğü ile birlikte kullanabiliriz.

Aşağıdaki komut dosyası, üyeler tablosundaki doğum tarihinin hemen sonrasına "date_of_registration" ekler.

ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;

Yukarıdaki komut dosyasını MySQL çalışma tezgahında myflixdb'ye karşı çalıştırmak ve ardından yukarıda verilen gösteri sütunları komut dosyasını çalıştırmak aşağıda gösterilen aşağıdaki sonuçları verir.

 
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(50) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
date_of_registration date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL
Note: The Hilighted row is added after date_of_birth cloumn

Özet

  • Alter komutu, bir veritabanını veya veritabanında bulunan herhangi bir nesneyi değiştirmek istediğimizde kullanılır.
  • Drop komutu, veritabanlarını MySQL sunucusundan veya bir veritabanı içindeki nesnelerden silmek için kullanılır.
  • Yeniden adlandırma komutu, bir tablonun adını yeni bir tablo adı ile değiştirmek için kullanılır.
  • Change anahtar sözcüğü, bir sütun adını, veri türünü ve kısıtlamaları değiştirmenize olanak sağlar
  • Anahtar Sözcüğü Değiştir, bir sütun veri türünü ve kısıtlamalarını değiştirmenize olanak sağlar
  • After anahtar sözcüğü, bir tablodaki bir sütunun konumunu belirtmek için kullanılır