PostgreSQL TABLOYU DEĞİŞTİR: Sütun Ekle ve Yeniden Adlandır

⚡ Akıllı Özet

PostgreSQL ALTER TABLE komutu, mevcut bir tablonun yapısını değiştirerek, sütun eklemenize veya silmenize, bir sütunu veya tüm tabloyu yeniden adlandırmanıza, varsayılan değerler belirlemenize ve nesneyi yeniden oluşturmadan kontrol kısıtlamaları eklemenize olanak tanır.

  • 🧱 Sözdizimi: ALTER TABLE table-name komutu, her ifadede yalnızca bir yapısal değişiklik gerçekleştirir.
  • Sütun Ekle: ADD column-name data-type komutu tabloya yeni bir sütun ekler.
  • ✏️ Adını değiştirmek: RENAME COLUMN ve RENAME TO komutları, bir sütun adını veya tablo adını değiştirmek için kullanılır.
  • ⚙️ Varsayılan değer: ALTER COLUMN SET DEFAULT komutu, gelecekte eklenecek satırlar için bir değer sağlar.
  • 🛡️ Kontrol Kısıtlaması: ADD CHECK komutu yeni verileri doğrular ve kurala uymayan değerleri reddeder.
  • 🤖 Yapay Zeka Geçişleri: Yapay zekâ asistanları ALTER TABLE komut dosyaları taslaklarını hazırlar ve güvenli bir şekilde çalıştırılıp çalıştırılamayacağını inceler.

PostgreSQL TABLOYU DEĞİŞTİR

ALTER TABLE nedir? PostgreSQL?

MKS TABLOYU DEĞİŞTİR Bu komut, bir yapının yapısını değiştirmek için kullanılır. PostgreSQL Tabloyu silmeden, tablo sütunlarını veya tablonun adını değiştirmek için kullanılan komuttur.ping ve nesneyi yeniden oluşturmak.

Sözdizimi

İşte sözdizimi PostgreSQL ALTER TABLE komutu:

ALTER TABLE table-name action;

`table-name` parametresi, değiştirmeniz gereken tablonun adıdır. `action` parametresi ise gerçekleştirmeniz gereken eylemdir; örneğin, bir sütunun adını değiştirmek veya bir sütunun veri türünü değiştirmek gibi.

Açıklama

ALTER TABLE komutu varolan bir tablonun tanımını değiştirir. Aşağıdaki alt formları alır:

  • SÜTUN EKLEBu komut, bir tabloya yeni bir sütun eklemek için kullanılan CREATE TABLE komutuna benzer bir sözdizimi kullanır.
  • BIRAKMA SÜTUNU: damla içinping Bir tablo sütunu. Sütunlara uygulanan kısıtlamalar ve indeksler de kaldırılacaktır.
  • VARSAYILANI AYARLA/BIRAK: Bir sütun için varsayılan değeri ayarlamak veya kaldırmak için kullanılır. Değişiklik yalnızca sonraki sütunlar için geçerlidir. INSERT ifadeleri.
  • AYARLA/BIRAKMA BOŞ DEĞİL: Bir sütunun boş değerlere izin verip vermeyeceğini değiştirir.
  • SET İSTATİSTİKLERİ: ANALYZE işlemleri için her sütun için istatistik toplama hedefinin ayarlanması amacıyla kullanılır.
  • DEPOLAMA AYARIBir sütunun depolama modunu (satır içi veya ek tabloda) ayarlamak için kullanılır.
  • OIDSİZ SET: Tablodaki eski OID sütununu kaldırmak için kullanılır.
  • ADINI DEĞİŞTİRMEK: tablo adını veya sütun adını değiştirmek için.
  • table_constraint EKLE: Bir tabloya yeni bir kısıtlama eklemek için kullanılır. Aynı sözdizimini kullanır. TABLO OLUŞTUR Komut.
  • DÜŞME KISITLAMASI: damlatmak için kullanılırping Bir tablo kısıtlaması.
  • SAHİBİBir tablonun, dizinin, indeksin veya görünümün sahibini belirli bir kullanıcıya değiştirmek için kullanılır.
  • KÜME: Gelecekteki kümeleme işlemleri için kullanılacak bir tabloyu işaretlemek için.

Bir Sütunu Değiştirme

Bir sütun çeşitli şekillerde değiştirilebilir. Bu değişiklikler ALTER TABLE komutu kullanılarak yapılır. Bunları aşağıda ele alalım.

Yeni Sütun Ekleme

Yeni bir sütun eklemek için PostgreSQL tablo, ALTER TABLE komutu aşağıdaki sözdizimiyle kullanılır:

ALTER TABLE table-name
  ADD new-column-name column-definition;

Tablo adı, değiştirilecek tablonun adıdır. Yeni sütun adı, eklenecek yeni sütunun adıdır. Sütun tanımı ise... veri tipi Yeni sütunun içeriği. Aşağıda gösterilen Kitap tablosuna bakın:

PostgreSQL ALTER TABLE Örneği

Tabloda id ve name olmak üzere iki sütun bulunmaktadır. Tabloya yeni bir sütun ekleyip ona author adını vermemiz gerekiyor. Bunun için aşağıdaki komutu çalıştırmanız yeterli:

ALTER TABLE Book
  ADD author VARCHAR(50);

Yukarıdaki komutu çalıştırdıktan sonra Kitap tablosu artık aşağıdaki gibidir:

PostgreSQL ALTER TABLE Örneği

Yeni sütun başarıyla eklendi.

Tablo Sütunu Yeniden Adlandırma

Bir sütunun adını değiştirmek için ALTER TABLE komutunu kullanabiliriz. Bu durumda, komut aşağıdaki sözdizimiyle kullanılır:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

Tablo adı, yeniden adlandırılacak sütunun ait olduğu tablonun adıdır. Eski ad, sütunun mevcut adıdır ve yeni ad, sütunun yeni adıdır. Aşağıda gösterilen Kitap tablosunu ele alalım:

Kitap:

PostgreSQL ALTER TABLE Örneği

"Yazar" sütunundaki ismi "kitap yazarı" olarak değiştirmemiz gerekiyor. İşte komut:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Komutu çalıştırdıktan sonra tablonun yapısını görebiliriz:

PostgreSQL ALTER TABLE Örneği

Sütun adı başarıyla değiştirildi.

Bir Sütun için Varsayılan Değer Ayarlama

Bir sütun için varsayılan bir değer belirleyebiliriz, böylece INSERT işlemleri sırasında o sütun için bir değer belirtmeseniz bile varsayılan değer kullanılır. Bu durumda, ALTER TABLE komutu aşağıdaki sözdizimiyle kullanılabilir:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

Tablo adı, sütunu değiştirilecek olan tablonun adıdır. Sütun adı, varsayılan değeri ayarlanacak olan sütunun adıdır ve değer, sütun için varsayılan değerdir. Aşağıda verilen Kitap tablosunu ele alalım:

PostgreSQL ALTER TABLE Örneği

book_author sütunu için varsayılan bir değer ayarlamamız gerekiyor. Aşağıdaki komutu çalıştırabiliriz:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Şimdi tabloya bir satır ekleyelim:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

Yalnızca id ve name sütunlarına değer girdiğimizi unutmayın. Ancak book_author sütunu için varsayılan değer kullanılmıştır:

PostgreSQL ALTER TABLE Örneği

Kontrol Kısıtlaması Ekleme

Kontrol kısıtlaması, bir tabloya eklenen kayıtların doğrulanmasına yardımcı olur. Bunu ALTER TABLE komutunu ADD CHECK deyimiyle birleştirerek yapabiliriz. Sözdizimi:

ALTER TABLE table-name ADD CHECK expression;

Tablo adı, değiştirilecek tablonun adıdır ve ifade, tablo sütununa uygulanacak kısıtlamadır. Kitap tablosunun book_author sütununu yalnızca Nicholas ve Samuel değerlerini kabul edecek şekilde değiştirelim:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Şimdi Book tablosunun Book_author sütununa Nicholas veya Samuel dışında bir değer eklemeye çalışalım:

INSERT INTO Book
VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

Bu ifade aşağıdaki hatayı döndürecektir:

PostgreSQL ALTER TABLE Örneği

Ekleme işlemi, kontrol kısıtlamasını ihlal ettiğimiz için başarısız oldu.

Tabloyu Yeniden Adlandırma

Bir tabloyu yeniden adlandırmak için ALTER TABLE komutunun sözdizimi aşağıda verilmiştir:

ALTER TABLE table-name
  RENAME TO new-table-name;

`table-name`, tablonun mevcut adıdır ve `new-table-name`, tabloya atanacak yeni addır. Örneğin, Kitap tablosunun adını Kitaplar olarak değiştirelim:

ALTER TABLE Book
  RENAME TO Books;

pgAdmin'i kullanma

Şimdiye kadar işlemler SQL kabuğundan yürütüldü. Şimdi bu işlemlerin pgAdmin kullanılarak görsel olarak nasıl gerçekleştirilebileceğine bakalım.

Yeni Sütun Ekleme

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım

  1. Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
  2. Demo'yu tıklayın.

PostgreSQL ALTER TABLE Örneği

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

ALTER TABLE Book
  ADD author VARCHAR(50);

) 4 Adım Yürüt düğmesine tıklayın.

PostgreSQL ALTER TABLE Örneği

) 5 Adım Sütunun eklenip eklenmediğini kontrol etmek için aşağıdakileri yapın:

  1. Sol gezinme bölmesinden Veritabanları'na tıklayın.
  2. Demo'yu genişletin.
  3. Şemaları genişletin.
  4. Genel'i genişletin.
  5. Tablolar'ı genişletin.
  6. Kitabı genişlet.
  7. Sütunları Genişletin.

PostgreSQL ALTER TABLE Örneği

Sütun aşağıda gösterildiği gibi eklenmiş olmalıdır:

PostgreSQL ALTER TABLE Örneği

Tablo Sütunu Yeniden Adlandırma

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım

  1. Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
  2. Demo'yu tıklayın.

PostgreSQL ALTER TABLE Örneği

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

) 4 Adım Yürüt düğmesine tıklayın.

PostgreSQL ALTER TABLE Örneği

) 5 Adım Değişikliğin başarılı olup olmadığını kontrol etmek için, kitap tablosunun sütunlarını daha önce olduğu gibi genişletin:

PostgreSQL ALTER TABLE Örneği

Artık sütunlar aşağıdaki gibi olmalıdır:

PostgreSQL ALTER TABLE Örneği

Sütun başarıyla değiştirildi.

Bir Sütun için Varsayılan Değer Ayarlama

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım

  1. Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
  2. Demo'yu tıklayın.

PostgreSQL ALTER TABLE Örneği

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

) 4 Adım Yürüt düğmesine tıklayın.

PostgreSQL ALTER TABLE Örneği

) 5 Adım Test etmek için, sorgu düzenleyicisinde aşağıdaki komutu çalıştırın:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

) 6 Adım Artık varsayılan değerin kitap_yazar sütununa eklenip eklenmediğini kontrol etmek için tabloyu sorgulayabiliriz:

PostgreSQL ALTER TABLE Örneği

Kontrol Kısıtlaması Ekleme

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım

  1. Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
  2. Demo'yu tıklayın.

PostgreSQL ALTER TABLE Örneği

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

) 4 Adım Yürüt düğmesine tıklayın.

PostgreSQL ALTER TABLE Örneği

) 5 Adım Bunu test etmek için, sorgu düzenleyicisine aşağıdaki sorguyu yazın ve Yürüt düğmesine tıklayın:

INSERT INTO Book
VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

PostgreSQL ALTER TABLE Örneği

Aşağıdakini döndürecektir:

PostgreSQL ALTER TABLE Örneği

Tabloyu Yeniden Adlandırma

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım

  1. Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
  2. Demo'yu tıklayın.

PostgreSQL ALTER TABLE Örneği

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

ALTER TABLE Book
  RENAME TO Books;

) 4 Adım Yürüt düğmesine tıklayın.

PostgreSQL ALTER TABLE Örneği

) 5 Adım Tablonun yeniden adlandırılıp adlandırılmadığını kontrol etmek için Veritabanları > Demo > Şemalar > Genel > Tablolar bölümünü genişletin:

PostgreSQL ALTER TABLE Örneği

Tablo başarıyla yeniden adlandırıldı.

Bu Eğitimde kullanılan Veritabanını İndirin

SSS

ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type komutunu kullanın. Değerlerin dönüştürülmesi gerektiğinde USING yan tümcesi ekleyin, örneğin ALTER COLUMN price TYPE numeric USING price::numeric. PostgreSQL Sütunu yeniden yazar ve mevcut verilerin yeni türe uygun olup olmadığını kontrol eder.

Yalnızca varsayılan değer değişken ise. Çünkü PostgreSQL 11. Sabit varsayılan değerle ADD COLUMN komutu, satırları yeniden yazmadan kataloğu anında günceller. Bir fonksiyon çağıran varsayılan değer ise yine de tam tablo yeniden yazımını ve daha güçlü bir kilidi zorlar.

Hayır. PostgreSQL Yerleşik bir kısıtlamayı değiştiremezsiniz. Mevcut kısıtlamayı DROP CONSTRAINT komutuyla kaldırın, ardından düzeltilmiş kısıtlamayı ADD CONSTRAINT komutuyla ekleyin. Tablonun kuralsız kalmaması için her iki ifadeyi de bir işlem içine alın.

Virgülle ayrılmış birkaç işlem listeleyin: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL Her değişiklik tek seferde uygulanır, bu da daha hızlıdır ve tablonun tutarlılığını korur.

ALTER TABLE table_name ADD PRIMARY KEY (column) veya ADD CONSTRAINT pk_name PRIMARY KEY (column) komutlarını kullanın. Sütun benzersiz ve boş olmayan değerler içermelidir; PostgreSQL Anahtar oluşturulduğunda otomatik olarak destekleyici benzersiz bir dizin oluşturur.

RENAME komutu yalnızca sistem kataloğundaki tablo adını günceller. Saklanan satırlar, indeksler ve kısıtlamalar yerinde kalır ve etkilenmez. Eski adı referans alan görünümler veya işlevlerin daha sonra güncellenmesi gerekebilir.

Yapay zekâ asistanları, tanımlanan bir değişiklikten yola çıkarak ALTER TABLE komut dosyaları oluşturur, ADD, RENAME ve kısıtlama adımlarını doğru şekilde sıralar ve tür dönüştürmeleri için USING yan tümceleri ekler. Ayrıca, büyük tabloları yeniden yazan veya ağır kilitler tutan işlemleri de işaretlerler.

Evet. Yapay zekâ destekli bir yardımcı pilot, geçiş işlemini inceler, kilitleme veya tam tablo yeniden yazma konusunda uyarıda bulunur, toplu işlem veya eş zamanlı indeks oluşturma önerir ve sarmalama (wrap) tavsiyesinde bulunur.ping Bir işlemdeki değişiklikler, şema güncellemelerinin dağıtımını daha güvenli hale getirir.

Bu yazıyı şu şekilde özetleyin: