MsSQL SQL Veritabanı

SQL ALTER TABLE Kullanımı

ALTER TABLE komutu; mevcut tabloya sütun eklemek, sütun silmek yada mevcut sütunun yapısında değişiklik yapmak için kullanılır. Mevcut tabloya çeşitli kısıtlamalar eklemek yada kısıtlamaları kaldırmak için de ALTER TABLE komutu kullanılır. Bu açıklamadan sonra örnekler üzerinde işlemlerin  kısaca nasıl yapıldığını açıklayalım. ALTER TABLE komutu ile bir yada birden fazla sütun ile işlem yapmak mümkündür. Örneklerin olabildiğince sade olması ve konuyu anlatması için işlemleri tek sütun üzerinden gerçekleştireceğim.

Aşağıdaki şekilde bir tabloya sahip olduğumuzu düşünerek alter işlemlerini gerçekleştirelim.

CREATE TABLE yazar(
yazarno int,
yazarad varchar(50)
)

 

 

SQL Sütun Ekleme: Mevcut SQL tablosuna sütun eklemek için alter komutu şu şekilde kullanılır.

--birden fazla sütun ekleme
ALTER TABLE tablo_adi ADD 
		sutun1 veri_turu,
		sutun2 veri_turu


--tek sütun ekleme
ALTER TABLE tablo_adi ADD sutun_adi veri_turu

 

NOT: Eğer yeni eklenen alan otomatik artan sayı olacaksa, alan oluşturulurken yapılması gerekir. Sonradan yapılması için alanın kaldırılması ve yeniden oluşturulması gerekir.

Örnek: yazarno alanını otomatik artan sayı olacak şekilde oluşturun.

ALTER TABLE yazar ADD  yazarno INT IDENTITY(1,1)

 

Örnek:

yazar tablosuna tarih türünde dogumtarih ve varchar türünde yazarsoyad alanını ekleyiniz.

ALTER TABLE yazar ADD 
		yazarsoyad varchar(50),
		dogumtarih date

yazar tablosuna varchar(11) türünde tcno alanını ekleyiniz.

ALTER TABLE yazar ADD tcno varchar(11)

 

SQL Sütun Çıkarma: Mevcut SQL tablosundan sütun çıkarmak için yazılması gereken en temel SQL komutu şu şekildedir.

--tek sütun kaldırma
ALTER TABLE tablo_adi DROP COLUMN sütun_adi

--birden fazla sütun kaldırma
ALTER TABLE tablo_adi  DROP COLUMN sutun1,sutun2

Örnek: yazar tablosundan dogumtarih alanını çıkarınız.

ALTER TABLE yazar DROP COLUMN dogumtarih

 

SQL Sütun Veri Türü Değiştirme: 

*Mevcut SQL Tablosundaki bir sütunun veri türünü değiştirmek için  yazılacak komut şu şekildedir.

ALTER TABLE tablo_adi ALTER COLUMN  sutun_adi veri_turu

Örnek: yazarad alanının veri türünü varchar(25) yapın.

ALTER TABLE yazar ALTER COLUMN  yazarad varchar(25)

 

*Mevcut SQL tablosundaki bir sütuna NOT NULL yada NULL kısıtlaması eklemek için yazılacak komut şu şekildedir.

ALTER TABLE tablo_adi ALTER COLUMN  sutun_adi veri_turu [NOT NULL | NULL ]

Örnek: yazarad ve tcno alanlarını NOT NULL yapın.

ALTER TABLE yazar ALTER COLUMN  yazarad varchar(25) NOT NULL
ALTER TABLE yazar ALTER COLUMN tcno varchar(11) NOT NULL

 

*Mevcut SQL tablosundaki bir sütuna UNIQUE  kısıtı eklemek için yazılması gereken komut şu şekildedir.(Not: hata mesajı almamak için alandaki verilerin eşsiz olması yada tablonun boş olması gerekiyor.)

ALTER TABLE tablo_adi ADD CONSTRAINT kisit_adi UNIQUE(sutun_adi)

Örnek: yazar tablosundaki tcno alanının UNIQUE (eşsiz) kısıtlaması uygulayın.

ALTER TABLE yazar  ADD CONSTRAINT tcno_kisit UNIQUE (tcno)

 

*Mevcut SQL tablsonundaki bir sütuna PRIMARY KEY (Birincil Anahtar) kısıtı eklemek için yazılması gereken komut şu şekildedir. Kısıt isimleri önemli. Kaldırma işlemleri  bu kısıt isimleri üzerinde yapılacaktır.

ALTER TABLE tablo_Adi ADD CONSTRAINT kisit_adi PRIMARY KEY (sutun_adi)

Örnek: yazar tablosundaki yazarno alanını önce boş geçilemez sonra da birincil anahtar yapın.  -Birincil anahtar için temel kurallardan biri boş geçilemez olmasıdır.

ALTER TABLE yazar ALTER COLUMN yazarno int NOT NULL
ALTER TABLE yazar ADD CONSTRAINT PK_yazarno PRIMARY KEY (yazarno)

 

*Mevcut SQL tablosundaki bir sütunun birincil anahtar kısıtını kaldırmak için yazılması gereken komut şu şekildedir. Alanlardaki kısıtları kaldırma işlemi kısıt adları ile yapılmaktadır. Diğer kısıtlamaları da kısıtlama adı ile kaldırabilirsiniz. Olmayan bir kısıtlamayı yada daha önce silinmiş olan bir kısıtlamayı silmeye çalışıyorsanız. “Could not drop constraint. See previous errors.” hatası ile karşılaşırsınız.

ALTER TABLE tablo_adi DROP CONSTRAINT kisit_adi

Örnek: yazar tablosundaki tcno alanındaki kısıtlamayı kaldırın. (tcno için UNIQUE kısıtlamasını tc_kisit olarak eklemiştik)

ALTER TABLE yazar DROP CONSTRAINT tc_kisit

 

SQL Tablodaki Sütunun Adını Değiştirme

ALTER Komutu ile sütun isimlerini değiştirmek mümkün değildir. Bu işlem için sp_rename saklı yordamı ile yapmak mümkündür. Ancak SQL Server tabloyu yeniden oluşturmanızı önerir.

Örnek: yazarad alanını yazaradsoyad olarak değiştiriniz.

sp_rename 'yazar.yazarad', 'yazaradsoyad', 'COLUMN'

 

SQL Tablosunun Adını Değiştirme

ALTER komutu ile tablo adını değiştirmek mümkün değil fakat bu işlem için sp_rename saklı yordamı kullanılabilir. İlişki bağımlılığı yüzünden SQL Server tabloyunu yeniden oluşturmayı öneriyor.

Örnek: yazar tablosunu yazarlar olarak değiştirin.

sp_rename 'yazar' , 'yazarlar'

 

 

 

 

Yorum Yap