Veri Tabanı Yönetim Sistemleri Kenan KILIÇASLAN http://www.kilicaslan.nom.tr kenank@beykent.edu.tr
Kenan KILIÇASLAN http://www.kilicaslan.nom.tr kenank@beykent.edu.tr Tablo oluşturma Kenan KILIÇASLAN http://www.kilicaslan.nom.tr kenank@beykent.edu.tr
CREATE TABLE deyiminin tam biçimi CREATE TABLE tablo_adı ( <kolon_tanımı>, <kolon_tanımı>,…. | <tablo_ kısıtlaması > ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
CREATE TABLE deyimi Kolon tanımlaması kolon_adı datatip DEFAULT sabit_denklem IDENTITY (başlangıç, artış ) <kolon_kısıtlaması>, <kolon_kısıtlaması>,… B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
CREATE TABLE deyimi Kolon kısıtlaması CONSTRAINT kısıtlama_adı NULL | NOT NULL PRIMARY KEY | UNIQUE CLUSTERED | NONCLUSTERED [FOREIGN KEY] REFERENCES ref_tablo [(ref_kolon)] CHECK (mantıksal_ifade) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
CREATE TABLE deyimi Tablo kısıtlaması [CONSTRAINT kısıtlama_adı] PRIMARY KEY | UNIQUE CLUSTERED | NONCLUSTERED ( kolon[,...n] ) FOREIGN KEY [(kolon[,...n])] REFERENCES ref_tablo [(ref_kolon[,...n])] CHECK (mantıksal_ifade) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
PRIMARY KEY kısıtlaması Bir kolon için verilen bu özellik tablo bazında her satır için ayrı olan bir anahtar değerini içerir. Her tabloda sadece bir PRIMARY KEY yaratılır. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
NULL, NOT NULL kısıtlaması NULL değerinin kolonda kullanılıp kullanılmamasını sağlar. Tanımlamada NOT NULL bulunması durumunda, kolon’un değeri hiçbir zaman null olamaz. Mutlaka bilgi girilmelidir. Tanımlamada belirtilmemesi durumunda NULL işlemi görür. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama CHECK kısıtlaması Kolon yada kolonlara girilecek değerleri kısıtmayı sağlayan bir deyimdir. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama IDENTITY kısıtlaması Yeni kolonun IDENTITY olup olmadığını belirler. Tabloya yeni satır eklendiğinde, SQL server otomatik olarak artan değer verir. Örnek; IDENTITY (1,2) 1 sayısı ilk değeri, 2 sayısı artışı belirtir. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama UNIQUE kısıtlaması Bir kolon için verilen bu özellik tablo bazında tek olan değerlerin kullanılmasını sağlar. Bir tabloda çok sayıda UNIQUE kısıtlaması bulunabilir. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
FOREIGN KEY...REFERENCES kısıtlaması Data bütünlüğüne referans olarak destek olan FOREIGN KEY kısıtlaması, kolon içindeki değerin belirtilen bir tabloda olmasını zorunlu kılar. ref_tablo : FOREIGN KEY kısıtlaması ile belirtilen tablonun adı. ref_kolon : FOREIGN KEY kısıtlaması ile belirtilen kolon yada kolonlar listesi. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
INDEX ‘lerin yaratılması açıklama CREATE TABLE deyiminde kullanılan PRIMARY KEY ile bir unique (tek) indez yaratılır. UNIQUE ile yine bir unique index yaratılır. CLUSTERED ile bir clustered index yaratılır. NONCLUSTERED ile bir nonclustered index yaratılır. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
INDEX ‘lerin yaratılması (Tam yazım biçimi) CREATE UNIQUE CLUSTERED | NONCLUSTERED INDEX index_adı ON table (kolon [,...n]) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama UNIQUE deyimi Bu tip indexlerde, indexte tek değer olmalıdır. Bir kolon veya bir den çok kolon üzerinde olabilir. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama CLUSTERED deyimi CLUSTERED İndexler tabloların sıralamasını etkiler. Bu deyimle oluşturulmuş indexlere göre tablolar dizilir. Bir tabloda sadece 1 adet CLUSTERED index bulunabilir. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama NONCLUSTERED deyimi Bu indexler tabloların sıralamasını etkilemez sadece mantıksal sıralama yatırır. Bir tabloda sadece 249 adet NONCLUSTERED index bulunabilir. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Müşteri tablosu CREATE TABLE musteri ( MusteriNo int, MusteriAdi varchar(20), MusteriSoyadi varchar(20), Adresi varchar(100), telefonu char(11) ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Ürün Tablosu CREATE TABLE urun ( UrunNo char(10), UrunAdi varchar(20), Fiyati money, Birimi char(5), Miktari decimal(10,2) ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Sipariş Tablosu CREATE TABLE siparis ( SiparisNo int, MusteriNo int, SiparisTarihi datetime, Aciklama varchar(100), TeslimAdresi varchar(100), TeslimTarihi datetime ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Sipariş Detay Tablosu CREATE TABLE SiparisDetay ( SiparisNo int, UrunNo char(10), Miktari Decimal(10,2), SatisFiyati money ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Kısıtlama olan bir tablo oluşturmak- müşeri tablosu Kolon Adı Data Tipi Kısıtlamalar musterino int Birincil Anahtar not null, otomatik sayı musteriadi Varchar(20) Not null musterisoyadi adresi Varchar(100) telefonu Char(11) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Müşteri tablosu (kısıtlama var) Bu deyim MusteriNo kolonunu birincil anahtar yapar Müşteri tablosu (kısıtlama var) Bu deyim MusteriNo kolonuna veri girilmesini zorunlu yapar CREATE TABLE musteri ( MusteriNo int PRIMARY KEY NOT NULL IDENTITY(1,1), MusteriAdi varchar(20) NOT NULL, MusteriSoyadi varchar(20) NOT NULL, Adresi varchar(100), telefonu char(11) ) Bu deyim ile her eklenen yeni müşteriye otomatik numara verir. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Ürün Tablosu Kolon Adı Data Tipi Kısıtlamalar UrunNo Char(10) Birincil anahtar not null UrunAdi Varchar(20) Not null Fiyati Money Birimi char(5) Varsayılan değer adet Miktari Decimal(10,2) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Ürün Tablosu CREATE TABLE urun ( UrunNo char(10) PRIMARY KEY NOT NULL, UrunAdi varchar(20) NOT NULL, Fiyati money NOT NULL, Birimi char(5) DEFAULT ‘ADET’, Miktari decimal(10,2) ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Tablolar arasında ilişki kurma İKİ METOD VARDIR TABLOLAR OLUŞTURULURKEN CREATE TABLE deyimi içinde TABLOLAR OLUŞTURULDUKTAN SONRA ALTER TABLE deyimi içinde OLMAZSA OLMAZLAR Tablonun 1 tarafındaki alan PRIMARY KEY olacak Her iki tarafta ilişkili alanlar NOT NULL olacak B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Sipariş Tablosu Kolon Adı Data Tipi Kısıtlamalar SiparisNo int Otomatik artan sayı, boş olamaz, Birincil Anahtar MusteriNo Bu alan musteri tablosundaki ilgili alanla ilişkili SiparisTarihi datetime Varsayılan değer bugünün tarihi Aciklama Varchar(100) TeslimAdresi TeslimTarihi Datetime NOT NULL B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Sipariş Tablosu CREATE TABLE siparis ( SiparisNo int NOT NULL PRIMARY KEY IDENTITY(1,1), MusteriNo int CONSTRAINT musteriIliski FOREIGN KEY REFERENCES musteri (MusteriNo), SiparisTarihi datetime DEFAULT GETDATE(), Aciklama varchar(100), TeslimAdresi varchar(100), TeslimTarihi datetime ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Kolon Adı Data Tipi Kısıtlamalar SiparisNo int Bu alan sipariş tablosunun ilgili alanı ile ilişkilidir. UrunNo Char(10) Bu alan urun tablosunun ilgili alanı ile ilişkilidir. Miktari Decimal(10,2) SatisFiyati Money B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Sipariş Detay Tablosu CREATE TABLE SiparisDetay ( SiparisNo int CONSTRAINT SiparisIliski FOREIGN KEY REFERENCES Siparis (SiparisNo) , UrunNo char(10) CONSTRAINT UrunIliski FOREIGN KEY REFERENCES Urun (UrunNo), Miktari Decimal(10,2), SatisFiyati money ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Tabloya yeni kolon ekleme Sipariş tablosuna AlisMi adında tinyint tipinde ve varsayılan değer 0 olan bir kolon ekleyiniz. ALTER TABLE Siparis ADD AlisMi tinyint DEFAULT 0 B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Tablolar arasında ilişki kurma RELATION deyimi Birçok-İlişkisinde ÇOK Tarafında kullanılmalıdır. B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama 1.yol Tabloların oluşturulma sırası Abone-paket Müşteri Görüşme B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Tablo örneği CREATE TABLE abone_paket ( paket_no SMALLINT NOT NULL PRIMARY KEY IDENTITY(1,1), paket_adi VARCHAR(50), telekom SMALLINT, gsm_ici SMALLINT, diger_operator SMALLINT ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Tablo örneği CREATE TABLE musteri ( telefon_no CHAR(10) PRIMARY KEY NOT NULL, adı VARCHAR(30), soyadı VARCHAR(30), Adresi VARCHAR(100), abonelik_paket_no SMALLINT DEFAULT 1 CONSTRAINT abone_paket_ilişki REFERENCES abone_paket (paket_no), faturalımı BIT DEFAULT 0 ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama Tablo örneği CREATE TABLE gorusme ( telefon_no CHAR(10) NOT NULL CONSTRAINT musteri_ilişki REFERENCES musteri (telefon_no) , aranan_telefon_no CHAR(13), arama_tarihi DATETIME, arama_saati DATETIME, sure INT ) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama İlişki silme Musteri tablosu ile abone_paket tablosu arasındaki ilişkiyi silelim İlişkinin adı : abone_paket_ilişki İlişki müşteri tablosunda oluşturulmuştur. ALTER TABLE musteri DROP CONSTRAINT abone_paket_ilişki B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bilgisayar Teknolojileri ve Programlama İlişki silme Musteri tablosu ile görüşme tablosu arasındaki ilişkiyi silelim İlişkinin adı : musteri_ilişki İlişki görüşme tablosunda oluşturulmuştur. ALTER TABLE gorusme DROP CONSTRAINT musteri_ilişki B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Mevcut tabloya kolon ekleme ALTER TABLE gorusme ADD aranan_telefon_alan_kodu CHAR(3) B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama
Bir tablodan kolon silme ALTER TABLE gorusme DROP COLUMN arama_saati B.Ü. Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programlama