Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması Sql komutları ve açıklamaları CREATE CREATE TABLE Üzerinde çalışma yapılan veritabanı içerisinde yeni bir tablonun oluşturulmasını sağlar. CREATE TABLE tablo_adı (alan_adı1 alan_tipi1, ..., alan_adıN alan_tipiN); Örnek Üzerinde çalışma yapılan veritabanı içerisinde okul isimli bir tabloyu NUMARA, AD, SOYAD ve YAS isimli veri alanları ile oluşturmak amacıyla CREATE TABLE okul(numara SMALLINT, ad CHAR(10), soyad CHAR(10), yas SMALLINT); diziliminin kullanılması yeterlidir. Üzerinde çalışma yapılan veritabanı içerisinde ZIYARETCI isimli bir tabloyu AD, SOYAD, ELMEK, ACIKLAMA1 ve ACIKLAMA2 isimli veri alanları ile oluşturmak amacıyla CREATE TABLE ziyaretci(ad CHAR(10), soyad CHAR(10), elmek CHAR(30), aciklama1 VARCHAR(100), aciklama2 VARCHAR(100)); diziliminin kullanılması yeterlidir. GONDERILER isimli bir tabloyu GGN, YGN ve ALICI isimli veri alanlarını kullanarak oluşturmak ve GGN isimli veri alanına boş veri girilmemesini sağlamak amacıyla CREATE TABLE gonderiler(GGN INTEGER NOT NULL, YGN SMALLINT,ALICI CHAR(30)); dersmax.net Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması 1 Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması diziliminin kullanılması yeterlidir. CREATE VIEW Bir tabloda yer alan verilerin özel bir bakış ortamında (alanında) saklanmasını sağlar. Söz konusu veriler, "genel" değil de "özel" özniteliğine sahip olması istenen verilerdir. Oluşturulan söz konusu bakış ortamına "sanal tablo" da denilmektedir. CREATE VIEW bakış_adı AS (sorgu); CREATE VIEW bakış_adı(alan1, ..., alanN) AS (sorgu); Örnek OGRENCI tablosunda yer alan verilere ait AD, SOYAD, DOGTAR isimli veri alanlarını kullanarak ilgili verileri TEMEL isimli bir bakış ortamına aynı veri alanı isimleri ile kaydetmek amacıyla CREATE VIEW TEMEL AS SELECT AD, SOYAD, DOGTAR FROM OGRENCI; diziliminin kullanılması yeterlidir. CALISANLAR tablosunda yer alan verilere ait SICIL, BOLNO, KATSAY isimli veri alanlarını kullanarak ilgili verileri ONEMLI isimli bir bakış ortamına SICIL_NO, BOLUM_NO ve KATSAYI isimli veri alanları ile kaydetmek amacıyla CREATE VIEW ONEMLI(SICIL_NO, BOLUM_NO, KATSAYI) AS SELECT SICIL, BOLNO, KATSAY FROM CALISANLAR; diziliminin kullanılması yeterlidir. CREATE DATABASE Üzerinde çalışma yapılan veritabanı yönetim dizgesi yardımıyla yeni bir veri tabanının oluşturulmasını sağlar. CREATE DATABASE veritabanı_adı Örnek BORDRO isimli yeni bir veritabanı oluşturmak amacıyla CREATE DATABASE bordro; diziliminin kullanılması yeterlidir. CREATE INDEX Bir tablodaki belirli veri alanlarını dikkate alarak bir dizin oluşturulmasını sağlar. CREATE INDEX dizin_adı ON tablo_adı(alan_adı1, ..., alan_adıN); Örnek CALISANLAR tablosundaki AYER isimli veri alanını dikkate alarak (AYER isimli veri alanını dizin anahtarı olarak kullanarak) GIDENLER isimli bir dizini artan sırada oluşturmak amacıyla dersmax.net Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması 2 Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması CREATE INDEX gidenler ON calisanlar (ayer); diziliminin kullanılması yeterlidir. Bu dizini azalan sırada oluşturmak amacıyla da CREATE INDEX gidenler ON calisanlar (ayer,DESC); diziliminin kullanılması yeterlidir. ARACLAR tablosundaki SAD, SSOYAD ve PLAKA alanlarını dikkate alarak PLAKALI_ARACLAR isimli bir dizin oluşturmak amacıyla CREATE INDEX plakali_araclar ON araclar(sad, ssoyad, plaka); diziliminin kullanılması yeterlidir. Oluşturulan bu dizindeki tüm veri değerleri artan sırada olacaktır. Eğer PLAKA isimli veri alanındaki veriler azalan sırada dizine yerleştirilmek istenirse CREATE INDEX plakali_araclar ON araclar(sad, ssoyad, plaka DESC); diziliminin kullanılması yeterlidir. 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 ALTER 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 dersmax.net Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması 3 Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması 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 dersmax.net Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması 4 Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması 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ştirmedir. 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. ALTER AFTER Yeni ekledigimiz tablo alani tablonun sonuna eklendi.Eger belirli bir siralama icerisinde yeni alani,olan herhangi bir alandan sonra gelecek sekilde koymak isterseniz "AFTER" anahtar kelimesini kullanabilirsiniz."After" ingilizcede "sonra" anlamina gelir. ALTER TABLE kullanicilar ADD cinsiyet ENUM('E', 'K') DEFAULT 'E' AFTER gercekadi; Kaynak: Burak TAŞ ve http://www.halukpolat.com dersmax.net Sql Komutlarından Create, Drop, Alter Add, Alter Drop, Alter Change, Alter After Komutlarının Tabloya Yada Veritabanına Uygulanması 5