![]() |
|
| |||||||
![]() |
| | Seçenekler |
|
#1
| |||
| | |||
SQL Dilinde Alter KomutuALTER 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 ekleme ALTER 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 sql EXEC SP_RENAME ’Sicil.PersonelSicilNo’, ’SicilNo’, ’Column’ // t-sql EXEC SP_RENAME ’myView’, ’MaasBordrosu’,’Object’ // View İsmi değiştirme EXEC 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şturduk ALTER 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 cSharpNedir DROP TABLE Personle DROP VIEW myView DROP INDEX Ix_Personel |
![]() |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konu Açanlar | Forum | Cevaplar | Güncel Mesajlar |
| PHP Programlama Dilinde Diziler (Array) | kadınca | PHP scriptler | 0 | 11-01-2008 01:36 |
| If Komutu | kadınca | C, c++, c# | 0 | 01-01-2008 12:46 |
| Alter Table ile tablo işlemleri | haberiz | Programlama Makaleleri | 0 | 26-11-2007 04:22 |
| Alter Ego | Celebrian | Felsefe | 0 | 20-11-2007 02:50 |
| Alter Ego | Celebrian | Felsefe | 0 | 20-11-2007 02:30 |