Veri Tabanı : Sql Komutlarından Create, Drop, Alter

advertisement
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));
www.dijitalders.com
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
www.dijitalders.com
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
www.dijitalders.com
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
www.dijitalders.com
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
www.dijitalders.com
Sql Komutlarından Create, Drop, Alter
Add, Alter Drop, Alter Change, Alter
After Komutlarının Tabloya Yada
Veritabanına Uygulanması
5
Download