Sobes.tech
Junior

İlişkisel veritabanında bir tablonun yapısını nasıl değiştirebilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir ilişkisel veritabanındaki tablo yapısı, SQL komutları ALTER TABLE kullanılarak değiştirilir.

Ana işlemler:

  • Sütun ekleme
  • Sütun silme
  • Bir sütunun veri türünü değiştirme
  • Kısıtlamalar ekleme/silme (PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, DEFAULT)
  • Tabloyu yeniden adlandırma
  • Sütunu yeniden adlandırma

ALTER TABLE komutlarına örnekler:

-- 'users' tablosuna NOT NULL kısıtlamasıyla VARCHAR(255) türünde 'email' sütunu ekleme
ALTER TABLE users
ADD COLUMN email VARCHAR(255) NOT NULL;
-- 'users' tablosundan 'phone' sütununu silme
ALTER TABLE users
DROP COLUMN phone;
-- 'users' tablosundaki 'age' sütununun veri türünü INTEGER olarak değiştirme
ALTER TABLE users
ALTER COLUMN age TYPE INTEGER;
-- 'users' tablosundaki 'username' sütununa UNIQUE kısıtlaması ekleme
ALTER TABLE users
ADD CONSTRAINT unique_username UNIQUE (username);
-- 'user_groups' tablosundan 'fk_user_group' adlı Foreign Key kısıtlamasını silme
ALTER TABLE user_groups
DROP CONSTRAINT fk_user_group;
-- 'customers' tablosunu 'clients' olarak yeniden adlandırma
ALTER TABLE customers
RENAME TO clients;
-- 'users' tablosunda 'first_name' sütununu 'given_name' olarak yeniden adlandırma (sözdizimi değişebilir)
ALTER TABLE users
RENAME COLUMN first_name TO given_name;

Önemli noktalar:

  • Tablo içinde veri olması: Veri türünü değiştirmek veya sütunu silmek, veri kaybına veya hatalı verilere yol açabilir.
  • Bağımlılıklar: Sütunu silmek veya kısıtlamaları değiştirmek, ilişkili tabloların çalışmasını bozabilir (örneğin, dış anahtarlar nedeniyle).
  • Performans: Büyük tablolarda karmaşık ALTER TABLE işlemleri kaynak yoğun olabilir ve işlem sırasında tabloya erişimi engelleyebilir.

Bu değişikliklerin üretim ortamında uygulanmadan önce test ortamında yapılması ve veri yedeklerinin alınması önerilir.