SQL de Alter Kullanımı

ALTER KOMUTU : Veritabanında var olan nesneler üzerinde yapılacak değişiklikler için kullanılan komuttur.Yeni tasarlanan bir veritabanında değişiklik yapmak çok güç değildir. Çünkü içindeki veriler az yada test amaçlıdır. Ama yaşayan bir veritabanında değişklik yapmak ciddi sorumluluklar ister. Verilin yok olmaması için çok dikkatli olmak gerekir. Bu konuda Alter ifadesi oldukça kolaylık sağlar.
Alter Table : Tablonun yapısı ile ilgili bilgilerin değiştirilmesi. Bazı durumlarda var olan tabloya yeni alan ekleyebilir, alan silebilir, alan adı değiştirebilir yada ilgili kısıtlamaları silebiliriz.

 Tablo adı değiştirme : Birinci şekil standart SQL deki gösterimidir. Fakat T-SQL de bu işlem biraz daha farklıdır. Bunun için master tablosunda tanımlanmış olan SP_RENAME saklı yordamından (stored procedur) faydalanmak zorundasınız . Buda ikinci şekildeki gibidir

 1 _ ALTER TABLE Tablo_Adı TO Yeni_Tablo_Adı    

 2_ EXEC SP_RENAME ’Tablo_Adı’, ’Yeni_Tablo_Adı’ ;

ALTER  TABLE   Personel  TO  Yeni_Personel                   // Standart SQL

 EXEC  SP_RENAME  ’Personel’,  ’Yeni_Personle’             // SQL Server T-SQL

Tabloya alan ekleme ve silme:

ALTER TABLE Tablo_Adı   ADD     Alan_Adı    Veri_Tip    Yeni alan ekleme.

ALTER TABLE Tablo_Adı   DROP COLUMN    Alan_Adı      Var olan alanı silme.       

ALTER TABLE   Personel ADD CocukSayisi  int;     ALTER TABLE   Personel DROP COLUMN   CocukSayisi    

Tablodaki alan veri tipi değiştirme: Kolon veri tipi değiştirilirken veri kaybı olmaması ve hata alınmaması için mantıklı tür dönüşümleri yapılmalı. Alanın veri tipi int iken varchar yapılırsa tür dönüşümü yapılır ve veri kaybı olmaz. Ayrıca varchar ise ve içerisinde  sadece sayı karakterleri tutulmuş ise sayı tür dönüşümü ile dönüştürülür ama sayı dışında da karakterler varsa hata ile karşılaşırsınız.

ALTER TABLE Tablo_Adi ALTER COLUMN Alan_Adi Yeni_Veri_Tipi 

ALTER TABLE Personle ALTER COLUMN    CocukSayisi    char(10)    

Tabloya kısıtlama ekleme ve silme : Özellikle iki tablo arasındaki ikincil anahtarları (foreing key) silerken dikkat edilecek en önemli nokta ilişkinin hangi tablodan hangi tabloya referans verildiğidir.

ALTER TABLE Tablo_Adı   ADD CONSTRAINT  Kısıtlama_Adı   Kısıtlamanın_Ozellikleri    Yeni kısıtlama ekleme.

ALTER TABLE Tablo_Adı   DROP CONSTRAINT Kısıtlamanını_Adı                               Var olan kısıtlamayı silme

ALTER   TABLE PersonelMal    ADD    CONSTRAINT    FK_PersonelMal_Personel_N    FOREIGN KEY (PPersonelId) REFERENCES Personel (PersonelId) ON DELETE CASCADE                                                                            // PersonelMal Tablosununa foreing key eklemeALTER   TABLE   PersonelMal   DROP CONSTRAINT   FK_PersonelMal_Personel_N    // Kısıtlamayı silme

Alan İsmi değiştirme: İsim değiştirme işlemleri standart SQL ’ de RENAME parametresi ile yapılır. Ama T-SQL’de tablo ismi değiştirmede olduğu gibi SP_RENAME  saklı yordamı ile yapılır.

ALTER TABLE Tablo_Adı  RENAME  Alan_Adı TO Yeni_Alan_Adı               Standart SQL ’ de 

EXEC SP_RENAME ’Tablo_Adı.Alan_Adı’,  ’Yeni_Alan_Adı’, ’Nesne_Tipi’      T-SQL ’ de

Nesne_Tipi  : SP_RENAME saklı yordamı(stored procedur) değiştirilecek nesnenin tipini belirtir. Bunlar DATABASE, TABLO, VIEW, COLUMN, OBJECT(CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY) , vb dir. Alan isimleri tablolara özel nesnelerdir. Her tabloda Adi diye bir alan tanımlayabilirsiniz. Ama tablo isimleri, constrainler , stored procedurler, trigerlar yani SQL Serverda sysobjects sistem tablosuna kaydedilen nesnelerin ismi tekildir. Bunların ismi değiştirilirken Nesne_Tipi parametresine ’object’ yazılması gerek.

ALTER TABLE Sicil RENAME PersonelSicilNo TO SicilNo                            //Standart sqlEXEC SP_RENAME ’Sicil.PersonelSicilNo’,  ’SicilNo’, ’Column’                   // t-sql
EXEC SP_RENAME ’myView’, ’MaasBordrosu’,’Object’                            // View İsmi değiştirmeEXEC SP_RENAME ’FK_PersonelMal_Personel’, ’FK_PM_P’,’Object’        // Foreing key ismi değiştirme

Alter View : Görünüm değiştirme. Görünüm değiştirme de tanımlama da olan standartlar geçerlidir. Bu tür yapılar üzerlerinde veri tutmadıkları ve sadece çalıştıkları zaman oluştuğu için değişiklik yapmak daha rahattır.

CREATE VIEW    V_Maas     AS      SELECT PersonelId, (Adi + ’ ’ + Soyadi) as AdSoyad, Maas FROM Personle ;                                   // View oluşturdukALTER VIEW    V_Maas     AS     SELECT PersonelId, (Adi + ’ ’ + Soyadi) as AdSoyad, Maas FROM Personle  WHERE Adi like(’A%’);   // View değiştirdik.Burda yaptığımız değişiklik sadece sorgumuza koşul ekledik. Adı A ile başlayan personellerinkini getirsin.

DROP KOMUTU: Databasede buluna nesnelerin silinmesi için kullanılan komuttur.

DROP DATABASE Veritabanı_Adı     Database silme

DROP TABLE Tablo_Adı                Tablo silme

DROP VIEW View_Adı                  View silme

DROP INDEX Index_Adı                Index silme

DROP DATABASE cSharpNedirDROP TABLE PersonleDROP VIEW myViewDROP INDEX Ix_Personel
Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s