SlideShare a Scribd company logo
VERİ TABANI OLUŞTURMA VE
YAPILANDIRMA
VERİ TABANININ TANIMLANMASI
(CREATE DATABASE):
• SOL Server Management Studio içinden veya
CREATE DATABASE ile veri tabanı
oluşturabiliriz.
Temel yapıda geçen ifadeleri kısaca açıklayalım;
• veritaban_ad: Yeni veri tabanının adı, Server
içerisinde benzersiz bir isim olacaktır. En fazla 128
karakter uzunluğunda olması gerekir.
• ON: Veri tabanı dosyalarını oluşturur. Bulunacağı yer
ve dosyalara ait bilgiler ile, eğer konulacak ise dosya
grup bilgisi içerir.
• LOG ON: Veri tabanı için log dosyalarını oluşturur. Bu
parametre verilmez ise otomatik olarak sistem, veri
tabanını örnek olarak kullanıp bir dosya oluşturur. Boyutu
ise veri tabanı dosyasının %25 kadardır. Kullanımı ON
yapısına çok benzer, ancak bir grup içinde olamaz.
• COLLATE: Veri tabanı için kullanılacak dil seçeneğini
belirler. Veri tabanı için varsayılan dil seçimi yapılır.
• PRIMARY: Birincil dosya tanımlaması yapılır. Birincil dosya
grupları, bütün veri tabanının sistem tablolarını içerir. Veri
tabanının ve sistem tablolarının mantıksal başlangıcını
içeren dosyadır. Veri tabanı sadece bir tane birincil
dosyaya sahip olabilir. Şayet birincil dosya
belirlenmemişse, CREATE DATABASE komut dizimindeki
listelenen ilk dosya birincil dosya olur.
• NAME: Mantıksal bir özel isimdir. Mantıksal ad, veri tabanı
oluşturulduktan sonra herhangi bir Transact- SQL
komutundan referans gösterilecek olan isimdir. Veri tabanı
içinde bu isimin benzersiz olması gerekir.
• FILENAME: İşletim sistemindeki dosyanın adıdır. Dosya
oluşturulduğu zaman işletim sistemi tarafından kullanılan
dosya adı ve yeri. Burada belirtilen yerin, işletim sistemi
tarafından sıkıştırılmış bir alan olmaması gerekir.
• MAXSIZE: Dosyanın maksimum büyüyebileceği boyuttur. KB,
MB, GB veya TB ekleri kullanılabilir. Varsayılanı MB'tır. Tam
sayı kullanılır, ondalıklı bir sayı kullanılamaz. Eğer belirtilmedi
ise disk doluncaya kadar anlamına gelir.
• UNLIMITED: Dosyanın büyüklüğü disk doluncaya kadar
anlamına gelir.
VERİ VE LOG DOSYALARINDA DEĞİŞİLİKLER
• ALTER DATABASE ile daha önce oluşturulmuş
veri tabanının içinde değişiklik yapabiliriz.ALTER
ifadesi kullanılırken veri tabanı adı ve içinde
bulunan mantıksal adlardan yararlanılır.
Kullanım şekli:
ALTER DATABASE veritaban_ad {
<add_or_modify_files>
| <add_or_modify_filegroups>
| MODIFY NAME = new_database_name
I COLLATE collationname }
 Eğer kodumuzda bir sınır belirtmez isek; küçültebileceği kadar
küçültür:
use Prestige4
DBCC SHRINKFILE(prestigeist3)
 Eğer EMPTYFILE parametresini kullanırsak, içindeki tüm dosyaları aynı
dosya grubu içinde bulunan diğer dosyalara taşır. Bu, bir fiziksel
küçültme yapmaz.
use Prestige4
DBCC SHRINKFILE(prestigeist3,EMPTYFILE)
 TRUNCATEONLY parametresini kullanılırsak; dosyaları taşımadan,
kullanılmayan alanları siler. Eğer bir sınır verilerek kullanılmış ise, bu
değeri dikkate alır.
use Prestige4
DBCC SHRINKFILE(prestigeist3,TRUNCATEONLY)
VERİ TABANI VE DOSYA SİLME
Veri tabanı içinde daha önce oluşturulan bir Secondary
dosyasını veya Grubu silmek için ALTER DATABASE komutu,
veri tabanı tamamen silinecekse o zaman, DROP DATABASE
komutu kullanılır.
SEMA (SCHEMAS) OLUŞTURMA
• Table, View, Procedure gibi nesneleri içerebilir. Aynı
zamanda veri tabanı ve server bilgilerini de barındırabilir.
• Bir veri tabanı içinde şema oluşturulabilir ve üzerinde
istenilen değişiklik yapılabilir.
• Varsayılan olarak dbo isimli bir şema vardır ve sa isimli
kullanıcıya bağlıdır. Varsayılan şema, CREATE USER veya
ALTER USER'ın DEFAULT_SCHEMA seçeneği ile atanabilir
veya değiştirilebilir. Eğer DEFAULT_SCHEMA veri tabanı
oluşumunda tanımlanmazsa varsayılan olarak dbo şemasına
sahip olur.
VERİ TABANI SNAPSHOT OLUŞTURMA
Var olan bir veri tabanının snapshot kopyası
sadece okunabilirdir. Bu yapı raporlama için
kullanılır.
Data-page düzeyli işlem söz konusudur. Snapshot
yapısı mutlaka aynı server içinde olmalıdır. Eğer
veri tabanında bir bozulma varsa, snapshot
yapıldığı andan itibaren veriler kurtarılabilir.
Böylelikle yönetim ve kullanıcı hatalarına karşı
veri tabanımızı bir nevi sigortalamış oluruz.
VERİ TİPLERİ
Geniş Boyutlu Veri Tipleri:
Daha önce kullandığımız varchar, nvarchar ve
varbinary veri tipleri maxifadesi ile beraber
kullanılarak limitleri yaklaşık 2GB'a çıkartılmıştır. Eski
versiyonda üst değerin sadece 8000 byte olduğunu
düşünürsek, gelişimin boyutunu daha iyi anlayabiliriz.
Eski versiyonla aynı özelliklere sahip olan bu veri tipleri,
varchar(max), nvarchar(max) varbinary(max) şeklinde
kullanılır. Önceki versiyonlarda kullanılan text, ntext ve
image veri tiplerine tercih edilebilir.
Tarih ve Zaman Veri Tipleri:
Tarih ve zaman ile ilgili veri tipleri oldukça zenginleşmiştir.
Bunlar en ince hassasiyetten, genel görüme kadar kullanılacak
seçeneklerdir.
Burada datetimeoffset kısmında bulunan +02:00ülkenin saat
konumunu belirler. Eğer kayıt girerken bu belirlenmez ise
Control Panel içindeki Bölgesel Ayarlardaki ülke zaman
ayarlarını kabul eder.
Geography Veri Tipi:
Dünyamızın koordinat bilgilerini depolamak
istediğimiz zaman kullanacağımız veri tipidir.
Geometry Veri Tipi:
Open GeospatialConsortium(OGC) tarafından
belirlenmiş geometri standartları için
kullanılan veri tipidir. Oldukça geniş kullanım
seçenekleri bulunmaktadır.
PARTIONED TABLE
• Eski versiyonda geniş tablolardan oluşturduğumuz ayrı view yapıları oluşturarak
performansı arttırabiliyorduk. Yeni versiyonda ise bu işlemi direkt tablo üzerine
uygulayabiliyoruz.
• Bir tabloyu yatay olarak bölümlere ayırabiliriz. Satırlar farklı dosya gruplarına
dağıtılabilir.
• Buradaki amaç:
• *Çoklu işlemci bulunan sistemde performansı arttırmak.
• * Geniş tabloların yönetimini basitleştirmek.
• INSERT INTO SELECT FROM ifadesi kullanılarak çok hızlı bir şekilde veriler;
bölümlenmiş tablolar arasında taşınabilir. Burada veri fiziksel olarak taşınmaz, sadece
metadata bilgileri değişir.
• Örneğin; eski yıla ait bilgileri bölerek ayrı bir bölümde tutmak bu yapı için
kullanılabilecek bir özelliktir.
• $partition fonksiyonu ile bölümlenmiş bir tablo hakkında bilgi sahibi olabiliriz.
• Bölümlenmiş bir tablo oluşturmak için aşağıdaki kademeler
uygulanmalıdır;
• *** Bölümlenme ile ilgili fonksiyon oluşturma (CREATE PARTITION FUNCTION)
• *** Bölümlenme ile ilgili şema oluşturma. (CREATE PARTITION SCHEME)
• *** Bölümlenmiş tablo oluşturma. (CREATE TABLE)
INDEX
Performans için en gerekli özelliklerinden biri de index
yapısıdır.
*** DISABLE: Bu ifade ile kullanıcıların geçici olarak
clusteredindex yapısındaki index mekanizmasını açmasını
engeller. Tekrar aktif hale getirmek için REBULID ifadesi
kullanılır.
*** REBUILD: Tek bir index veya bulunan tüm index'leri yeniden
aktivite etmek için kullanılır. DBCC DBREINDEX ifadesinin yaptığını
yapar.
*** REORGANIZE: lndex yapısında bulunan leaf bölümünü yeniden
düzenleyerek performansı arttırır. Bir nevi ekleme ve silmelerden
dolayı oluşan index parçalanmalarını düzenleyerek, daha
performanslı çalışmasını sağlar.
• ONLINE={ON/OF}: Sorgulama veya güncelleme işlemlerinde
tablonun kilitli olup-olmamasını belirler.
• ALLOW_ROW_LOCK={ON/OFF}:Satır bazlı kilitleme olup-
olamamasını belirler.
• ALLOW_PAGE_LOCK={ON/OFF}:Sayfa bazlı kilitleme olup-
olamamasını belirler.
• MAXDROP=işlemci sayısı:Kontrolün kaç işlemci tarafından
yapılacağını belirler. Bu seçeneği server düzeyinde devreye sokmak
için ise sys.sp_configure kullanılır.
• PERFORMANS: Performansı arttıran diğer bir etken de
nonclusterindex ile beraber kullanılan key değeri bulunmayan
sütunların yapıya dahil edilmesidir. Bunun maksimum limiti 16
sütundur.
• INDEX BÖLÜMLEME: Bir önceki bölümde anlattığımız ve üç adımda
oluşan tablo bölümleme işlemi aynen index yapısı için de
geçerlidir.Büyük indexbilgileri ayrı dosya gruplarında tutularak
performansarttırılabilir.
İLERİ DATA MANIPULATIONLAN.(DML)
ÖZELLİKLERİ:
OUTPUT:
SQL Server içinde bir trigger oluşturduğumuz zaman
inserted ve deleted özel tablolarında bulunan bilgiler
ile işlemler gerçekleştirme; eski versiyonda olduğu gibi,
yeni versiyonda da devam etmektedir.
 Aşağıdaki hallerin dışında herhangi bir DML ifadesi
içinde OUTPUT kullanılabilir.
*** Hedef view yapısında INSERT ifadesi.
*** Uzaktaki tablo ve view için kullanılacak DML ifadeleri.
*** Lokal veya dağıtılmış bölünmüş view yapılarında
COMMON TABLE EXPRESSION(CTES):
Temel yapısı SELECT sorgusu içermektedir. SELECT, INSERT,
UPDATE ve DELETE ifade sonuçları yakalanabilir.
• Kullanım ifadeleri:
WITH <common_table_expression> [,...n]]
<common_table_expression>::=
expression_ad
[{sütun ad[,...n])]
AS
(<CTE_sorgu_tanımlaması>)
• Expression_ad: CTE adıdır. Herhangi bir isimi olabileceği gibi, veri
tabanında bulunan bir tablo adı bile olabilir.
• Sütun_ad: CTE için kullanılacak sütun adı veya adlarıdır. Seçilen
sütun sayısı ile sorgu sonucu oluşan sütun sayısı birbiriyle aynı
olmalıdır.
• CTE_sorgu_tanımlaması: Sonuç yapısı için kullanılacak özel SELECT
ifadesidir.
• Aşağıdaki yapılar CTE_sorgu tanımlamasında kullanılmaz.
*** COMPUTE or COMPUTE BY
*** ORDER BY (TOP ifadesi varsa hariç)
*** INTO
*** OPTİON (sorgu yapısında)
*** FOR XML
*** FOR BROWSE
Kullanılması:
• CTE sütun listesi seçilir.
• CTE SELECT sorgusu oluşturulur.
• Sorgu içinde CTE kullanılır
Eski yapıda türetilmiş tablolar ayrı ayrı oluşturulurken, bu yapıyla
birlikte aynı kod içinde bulunması; okunabilirliği ve basitliği arttırır.
Ayrıca kod hiyerarşi karmaşıklığından kurtuluruz.
PIVOT UNPIVOT
• Geniş veri tabanları için güçlü çapraz sorgular oluşturmakta
yararlanacağımız yeni bir özelliktir.
• PIVOT ile çapraz sorgular oluşturularak; sum, average, count gibi
fonksiyonlar ve gruplamalar yapılabilir. Microsoft Access programının
Transformifadesine benzer.
• Kullanım Şekli:
SELECT*FROM tablo_kaynağı
PIVOT(küme_fonksiyon( sütun_değer)
FOR pivot_sütun
IN(<sütun_liste>)
) tablo_takmaad
• UNPIVOT ise sütunu değere dönüştürür. PIVOT yapısının zıttıdır.
UNPIVOT kullanım şekli, PIVOT yapısına benzer. Ancak PIVOT yerine
özel UNPIVOT işlemleri kullanılır.
APPLY
Birbirleri ile JOIN ifadesi ile ilişkilendirilmiş
tablonun her bir satırını tablo fonksiyonu olarak
döndürmek için kullanılır.
İki çeşidi vardır;
*** CROSS APPLY: Yalnızca satırları bir tablo
fonksiyonu döndürür.
*** OUTER APPLY: Tüm satırları tablo fonksiyonu
döndürür. Satır yoksa veya null değeri taşıyorsa
bile döndürme işlemini gerçekleştirir.
DİZİ(RANK) FONKSİYONLAR
• SQL Server dört çeşit dizi fonksiyonuna destek vermektedir. Bunlar;
RANK, DENSE_RANK, NTITLE ve ROW_NUMBER.Hepsinin de OVER
cümleciği ile beraber kullanılması gerekmektedir.
• OVER ifadesi bölümlenmeyi ve satır sıralanmasını sağlar. Kullanım
şekli aşağıdaki gibidir;
over ([ PARTITION BY < ifade_deðeri > , ... [ n ] ]
ORDERBY<sütun> [ ASC | DESC ] [, ...[ n ] ])
• PARTITION BY cümleciği ile dizi için satırların nasıl gruplanacağı
belirlenir. Her bir bölümün satır sıralanmasının nasıl olacağı ise
ORDER BY cümleciği ile ayarlanır.
• RANK:Sonuç yapısı içinde ayrılmış özel bir bölümle birlikte her bir
satırın dizi olarak dönmesi için kullanılan fonksiyondur. Eğer
OrderBy ile belirtilen değeri birden fazla hücre içinde varsa aynı dizi
numarasını alırlar.
HATA KONTROLÜ
Hata kontrolü bazı Transact-SQL ifadeleri için vazgeçilmezdir.
Exception; .NET dilleri için ortak ve yaygın kullanılan bir yapıdır. Bu sürüm
ile SQL Server 2005 bünyesinden itibaren dahil edilmiştir.
TRY... CATCH: TRY...CATCHbloğu Exceptionyapısında kullanılır. TRY bloğu esas
çalışması gereken kodu içerirken, CATCH bloğu ise hata durumunda
devreye girecek ifadeleri içerir.
Kullanım Şekli:
BEGINTRY
{sql ifadesi /sql ifadelen}
ENDTRY
BEGINCATCH
{sql ifadesi/sql ifadeleri}
ENDCATCH

More Related Content

What's hot

İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09
Cihan Özhan
 
Oracle11g
Oracle11gOracle11g
Oracle11g
Ensar Yurt
 
7.hafta kadir dikmen
7.hafta kadir dikmen7.hafta kadir dikmen
7.hafta kadir dikmenoktaygokgol
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
Cihan Özhan
 
Sql egitim-seti
Sql egitim-setiSql egitim-seti
Sql egitim-setisersld61
 
Sql kursu-ucreti
Sql kursu-ucretiSql kursu-ucreti
Sql kursu-ucretisersld61
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
Delphi 7
Delphi 7Delphi 7

What's hot (20)

İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
 
İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02
 
İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06
 
İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
 
İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05
 
Mssql Slayt 2
Mssql Slayt 2Mssql Slayt 2
Mssql Slayt 2
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15
 
İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09
 
Oracle11g
Oracle11gOracle11g
Oracle11g
 
Sql Server 2.hafta
Sql Server 2.haftaSql Server 2.hafta
Sql Server 2.hafta
 
7.hafta kadir dikmen
7.hafta kadir dikmen7.hafta kadir dikmen
7.hafta kadir dikmen
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
 
Sql egitim-seti
Sql egitim-setiSql egitim-seti
Sql egitim-seti
 
Sql kursu-ucreti
Sql kursu-ucretiSql kursu-ucreti
Sql kursu-ucreti
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
 
Delphi 7
Delphi 7Delphi 7
Delphi 7
 

Viewers also liked

Kullanici tanimli fonksi̇yons
Kullanici tanimli fonksi̇yonsKullanici tanimli fonksi̇yons
Kullanici tanimli fonksi̇yonsoktaygokgol
 
Mama
MamaMama
Journey of ipama
Journey of  ipamaJourney of  ipama
Journey of ipama
printpack11
 
Ipama glorious 25 years
Ipama   glorious 25 yearsIpama   glorious 25 years
Ipama glorious 25 years
printpack11
 
Ipama and its exhibitions
Ipama and its exhibitionsIpama and its exhibitions
Ipama and its exhibitions
printpack11
 
Ipama and its exhibitions
Ipama and its exhibitionsIpama and its exhibitions
Ipama and its exhibitions
printpack11
 
Journey of ipama
Journey of  ipamaJourney of  ipama
Journey of ipama
printpack11
 
Ipama glorious 25 years
Ipama   glorious 25 yearsIpama   glorious 25 years
Ipama glorious 25 years
printpack11
 
Veri̇ tabani kurtarma i̇şlemleri̇ sunu
Veri̇ tabani kurtarma i̇şlemleri̇ sunuVeri̇ tabani kurtarma i̇şlemleri̇ sunu
Veri̇ tabani kurtarma i̇şlemleri̇ sunuoktaygokgol
 
Payment of domain registration with bitcoins
Payment of domain registration with bitcoinsPayment of domain registration with bitcoins
Payment of domain registration with bitcoins
berniejcoyle
 
Sql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇şSql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇ş
oktaygokgol
 
Stored procedure
Stored procedureStored procedure
Stored procedureoktaygokgol
 

Viewers also liked (14)

Kullanici tanimli fonksi̇yons
Kullanici tanimli fonksi̇yonsKullanici tanimli fonksi̇yons
Kullanici tanimli fonksi̇yons
 
Mama
MamaMama
Mama
 
Itt
IttItt
Itt
 
Journey of ipama
Journey of  ipamaJourney of  ipama
Journey of ipama
 
Ipama glorious 25 years
Ipama   glorious 25 yearsIpama   glorious 25 years
Ipama glorious 25 years
 
Ipama and its exhibitions
Ipama and its exhibitionsIpama and its exhibitions
Ipama and its exhibitions
 
Ipama and its exhibitions
Ipama and its exhibitionsIpama and its exhibitions
Ipama and its exhibitions
 
Journey of ipama
Journey of  ipamaJourney of  ipama
Journey of ipama
 
Ipama glorious 25 years
Ipama   glorious 25 yearsIpama   glorious 25 years
Ipama glorious 25 years
 
Veri̇ tabani kurtarma i̇şlemleri̇ sunu
Veri̇ tabani kurtarma i̇şlemleri̇ sunuVeri̇ tabani kurtarma i̇şlemleri̇ sunu
Veri̇ tabani kurtarma i̇şlemleri̇ sunu
 
Payment of domain registration with bitcoins
Payment of domain registration with bitcoinsPayment of domain registration with bitcoins
Payment of domain registration with bitcoins
 
Sql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇şSql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇ş
 
Sunu
SunuSunu
Sunu
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 

Similar to Veri̇ tabani oluşturma ve yapilandirma

Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)
Sibel Kuzgun AKIN
 
Sunum Powerpoint
Sunum PowerpointSunum Powerpoint
Sunum PowerpointFatma Blhn
 
Oracle database architecture
Oracle database architectureOracle database architecture
Oracle database architecture
Hızlan ERPAK
 
Veri tabaniprogramlama 12.10.2012
Veri tabaniprogramlama 12.10.2012Veri tabaniprogramlama 12.10.2012
Veri tabaniprogramlama 12.10.2012
Sevdanur Genc
 
9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomrukoktaygokgol
 
Access 2013 Hafta 2
Access 2013 Hafta 2Access 2013 Hafta 2
Access 2013 Hafta 2
abdullahgul42
 
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanOrneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanAnar Godjaev
 
Mysql2
Mysql2Mysql2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
Oracle ile tanisalim
Oracle ile tanisalimOracle ile tanisalim
Oracle ile tanisalim
Mine Özdemir
 
Temel Düzeyde MySQL ve PHP Eğitimleri 2
Temel Düzeyde MySQL ve PHP Eğitimleri 2Temel Düzeyde MySQL ve PHP Eğitimleri 2
Temel Düzeyde MySQL ve PHP Eğitimleri 2
Univerist
 
Veritabanı Sunusu - 1
Veritabanı Sunusu - 1Veritabanı Sunusu - 1
Veritabanı Sunusu - 1
Bilgisayar Kulübü
 
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Oracle Mimarisi  "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"Oracle Mimarisi  "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"Anar Godjaev
 
Recovery Manager (RMAN)
Recovery Manager (RMAN)Recovery Manager (RMAN)
Recovery Manager (RMAN)Anar Godjaev
 
kullanıcı tanımlı fonksiyonlar
kullanıcı tanımlı fonksiyonlarkullanıcı tanımlı fonksiyonlar
kullanıcı tanımlı fonksiyonlaroktaygokgol
 
Oracle 12c Database In-Memory
Oracle 12c Database In-MemoryOracle 12c Database In-Memory
Oracle 12c Database In-Memory
Gokhan Atil
 
Instance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını IncelemeInstance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını IncelemeAnar Godjaev
 

Similar to Veri̇ tabani oluşturma ve yapilandirma (20)

Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)
 
Sunum Powerpoint
Sunum PowerpointSunum Powerpoint
Sunum Powerpoint
 
Oracle database architecture
Oracle database architectureOracle database architecture
Oracle database architecture
 
Veri tabaniprogramlama 12.10.2012
Veri tabaniprogramlama 12.10.2012Veri tabaniprogramlama 12.10.2012
Veri tabaniprogramlama 12.10.2012
 
9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomruk
 
Access 2013 Hafta 2
Access 2013 Hafta 2Access 2013 Hafta 2
Access 2013 Hafta 2
 
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanOrneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
 
Mysql2
Mysql2Mysql2
Mysql2
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
 
Oracle ile tanisalim
Oracle ile tanisalimOracle ile tanisalim
Oracle ile tanisalim
 
hafta1
hafta1hafta1
hafta1
 
Temel Düzeyde MySQL ve PHP Eğitimleri 2
Temel Düzeyde MySQL ve PHP Eğitimleri 2Temel Düzeyde MySQL ve PHP Eğitimleri 2
Temel Düzeyde MySQL ve PHP Eğitimleri 2
 
Veritabanı Sunusu - 1
Veritabanı Sunusu - 1Veritabanı Sunusu - 1
Veritabanı Sunusu - 1
 
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Oracle Mimarisi  "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"Oracle Mimarisi  "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
 
Recovery Manager (RMAN)
Recovery Manager (RMAN)Recovery Manager (RMAN)
Recovery Manager (RMAN)
 
Sunu
SunuSunu
Sunu
 
kullanıcı tanımlı fonksiyonlar
kullanıcı tanımlı fonksiyonlarkullanıcı tanımlı fonksiyonlar
kullanıcı tanımlı fonksiyonlar
 
Oracle 12c Database In-Memory
Oracle 12c Database In-MemoryOracle 12c Database In-Memory
Oracle 12c Database In-Memory
 
Instance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını IncelemeInstance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını Inceleme
 
Konu anlatımı
Konu anlatımıKonu anlatımı
Konu anlatımı
 

More from oktaygokgol

Metin gülyüz aralık kişilik sahibi olma
Metin gülyüz aralık kişilik sahibi olmaMetin gülyüz aralık kişilik sahibi olma
Metin gülyüz aralık kişilik sahibi olma
oktaygokgol
 
8.hafta yusuf dinçer
8.hafta yusuf dinçer8.hafta yusuf dinçer
8.hafta yusuf dinçeroktaygokgol
 
Sql serverda indexkavrami
Sql serverda indexkavramiSql serverda indexkavrami
Sql serverda indexkavramioktaygokgol
 
Sql server 2012 kurulum sunu
Sql server 2012 kurulum sunuSql server 2012 kurulum sunu
Sql server 2012 kurulum sunuoktaygokgol
 

More from oktaygokgol (9)

Metin gülyüz aralık kişilik sahibi olma
Metin gülyüz aralık kişilik sahibi olmaMetin gülyüz aralık kişilik sahibi olma
Metin gülyüz aralık kişilik sahibi olma
 
Sunu
SunuSunu
Sunu
 
Hayrettin kunuk
Hayrettin kunukHayrettin kunuk
Hayrettin kunuk
 
Ittodev
IttodevIttodev
Ittodev
 
8.hafta
8.hafta8.hafta
8.hafta
 
8.hafta yusuf dinçer
8.hafta yusuf dinçer8.hafta yusuf dinçer
8.hafta yusuf dinçer
 
Sql serverda indexkavrami
Sql serverda indexkavramiSql serverda indexkavrami
Sql serverda indexkavrami
 
Sunu
SunuSunu
Sunu
 
Sql server 2012 kurulum sunu
Sql server 2012 kurulum sunuSql server 2012 kurulum sunu
Sql server 2012 kurulum sunu
 

Veri̇ tabani oluşturma ve yapilandirma

  • 1. VERİ TABANI OLUŞTURMA VE YAPILANDIRMA
  • 2. VERİ TABANININ TANIMLANMASI (CREATE DATABASE): • SOL Server Management Studio içinden veya CREATE DATABASE ile veri tabanı oluşturabiliriz. Temel yapıda geçen ifadeleri kısaca açıklayalım; • veritaban_ad: Yeni veri tabanının adı, Server içerisinde benzersiz bir isim olacaktır. En fazla 128 karakter uzunluğunda olması gerekir. • ON: Veri tabanı dosyalarını oluşturur. Bulunacağı yer ve dosyalara ait bilgiler ile, eğer konulacak ise dosya grup bilgisi içerir.
  • 3. • LOG ON: Veri tabanı için log dosyalarını oluşturur. Bu parametre verilmez ise otomatik olarak sistem, veri tabanını örnek olarak kullanıp bir dosya oluşturur. Boyutu ise veri tabanı dosyasının %25 kadardır. Kullanımı ON yapısına çok benzer, ancak bir grup içinde olamaz. • COLLATE: Veri tabanı için kullanılacak dil seçeneğini belirler. Veri tabanı için varsayılan dil seçimi yapılır. • PRIMARY: Birincil dosya tanımlaması yapılır. Birincil dosya grupları, bütün veri tabanının sistem tablolarını içerir. Veri tabanının ve sistem tablolarının mantıksal başlangıcını içeren dosyadır. Veri tabanı sadece bir tane birincil dosyaya sahip olabilir. Şayet birincil dosya belirlenmemişse, CREATE DATABASE komut dizimindeki listelenen ilk dosya birincil dosya olur.
  • 4. • NAME: Mantıksal bir özel isimdir. Mantıksal ad, veri tabanı oluşturulduktan sonra herhangi bir Transact- SQL komutundan referans gösterilecek olan isimdir. Veri tabanı içinde bu isimin benzersiz olması gerekir. • FILENAME: İşletim sistemindeki dosyanın adıdır. Dosya oluşturulduğu zaman işletim sistemi tarafından kullanılan dosya adı ve yeri. Burada belirtilen yerin, işletim sistemi tarafından sıkıştırılmış bir alan olmaması gerekir. • MAXSIZE: Dosyanın maksimum büyüyebileceği boyuttur. KB, MB, GB veya TB ekleri kullanılabilir. Varsayılanı MB'tır. Tam sayı kullanılır, ondalıklı bir sayı kullanılamaz. Eğer belirtilmedi ise disk doluncaya kadar anlamına gelir. • UNLIMITED: Dosyanın büyüklüğü disk doluncaya kadar anlamına gelir.
  • 5. VERİ VE LOG DOSYALARINDA DEĞİŞİLİKLER • ALTER DATABASE ile daha önce oluşturulmuş veri tabanının içinde değişiklik yapabiliriz.ALTER ifadesi kullanılırken veri tabanı adı ve içinde bulunan mantıksal adlardan yararlanılır. Kullanım şekli: ALTER DATABASE veritaban_ad { <add_or_modify_files> | <add_or_modify_filegroups> | MODIFY NAME = new_database_name I COLLATE collationname }
  • 6.  Eğer kodumuzda bir sınır belirtmez isek; küçültebileceği kadar küçültür: use Prestige4 DBCC SHRINKFILE(prestigeist3)  Eğer EMPTYFILE parametresini kullanırsak, içindeki tüm dosyaları aynı dosya grubu içinde bulunan diğer dosyalara taşır. Bu, bir fiziksel küçültme yapmaz. use Prestige4 DBCC SHRINKFILE(prestigeist3,EMPTYFILE)  TRUNCATEONLY parametresini kullanılırsak; dosyaları taşımadan, kullanılmayan alanları siler. Eğer bir sınır verilerek kullanılmış ise, bu değeri dikkate alır. use Prestige4 DBCC SHRINKFILE(prestigeist3,TRUNCATEONLY)
  • 7. VERİ TABANI VE DOSYA SİLME Veri tabanı içinde daha önce oluşturulan bir Secondary dosyasını veya Grubu silmek için ALTER DATABASE komutu, veri tabanı tamamen silinecekse o zaman, DROP DATABASE komutu kullanılır. SEMA (SCHEMAS) OLUŞTURMA • Table, View, Procedure gibi nesneleri içerebilir. Aynı zamanda veri tabanı ve server bilgilerini de barındırabilir. • Bir veri tabanı içinde şema oluşturulabilir ve üzerinde istenilen değişiklik yapılabilir. • Varsayılan olarak dbo isimli bir şema vardır ve sa isimli kullanıcıya bağlıdır. Varsayılan şema, CREATE USER veya ALTER USER'ın DEFAULT_SCHEMA seçeneği ile atanabilir veya değiştirilebilir. Eğer DEFAULT_SCHEMA veri tabanı oluşumunda tanımlanmazsa varsayılan olarak dbo şemasına sahip olur.
  • 8. VERİ TABANI SNAPSHOT OLUŞTURMA Var olan bir veri tabanının snapshot kopyası sadece okunabilirdir. Bu yapı raporlama için kullanılır. Data-page düzeyli işlem söz konusudur. Snapshot yapısı mutlaka aynı server içinde olmalıdır. Eğer veri tabanında bir bozulma varsa, snapshot yapıldığı andan itibaren veriler kurtarılabilir. Böylelikle yönetim ve kullanıcı hatalarına karşı veri tabanımızı bir nevi sigortalamış oluruz.
  • 9. VERİ TİPLERİ Geniş Boyutlu Veri Tipleri: Daha önce kullandığımız varchar, nvarchar ve varbinary veri tipleri maxifadesi ile beraber kullanılarak limitleri yaklaşık 2GB'a çıkartılmıştır. Eski versiyonda üst değerin sadece 8000 byte olduğunu düşünürsek, gelişimin boyutunu daha iyi anlayabiliriz. Eski versiyonla aynı özelliklere sahip olan bu veri tipleri, varchar(max), nvarchar(max) varbinary(max) şeklinde kullanılır. Önceki versiyonlarda kullanılan text, ntext ve image veri tiplerine tercih edilebilir.
  • 10. Tarih ve Zaman Veri Tipleri: Tarih ve zaman ile ilgili veri tipleri oldukça zenginleşmiştir. Bunlar en ince hassasiyetten, genel görüme kadar kullanılacak seçeneklerdir. Burada datetimeoffset kısmında bulunan +02:00ülkenin saat konumunu belirler. Eğer kayıt girerken bu belirlenmez ise Control Panel içindeki Bölgesel Ayarlardaki ülke zaman ayarlarını kabul eder.
  • 11. Geography Veri Tipi: Dünyamızın koordinat bilgilerini depolamak istediğimiz zaman kullanacağımız veri tipidir. Geometry Veri Tipi: Open GeospatialConsortium(OGC) tarafından belirlenmiş geometri standartları için kullanılan veri tipidir. Oldukça geniş kullanım seçenekleri bulunmaktadır.
  • 12. PARTIONED TABLE • Eski versiyonda geniş tablolardan oluşturduğumuz ayrı view yapıları oluşturarak performansı arttırabiliyorduk. Yeni versiyonda ise bu işlemi direkt tablo üzerine uygulayabiliyoruz. • Bir tabloyu yatay olarak bölümlere ayırabiliriz. Satırlar farklı dosya gruplarına dağıtılabilir. • Buradaki amaç: • *Çoklu işlemci bulunan sistemde performansı arttırmak. • * Geniş tabloların yönetimini basitleştirmek. • INSERT INTO SELECT FROM ifadesi kullanılarak çok hızlı bir şekilde veriler; bölümlenmiş tablolar arasında taşınabilir. Burada veri fiziksel olarak taşınmaz, sadece metadata bilgileri değişir. • Örneğin; eski yıla ait bilgileri bölerek ayrı bir bölümde tutmak bu yapı için kullanılabilecek bir özelliktir. • $partition fonksiyonu ile bölümlenmiş bir tablo hakkında bilgi sahibi olabiliriz. • Bölümlenmiş bir tablo oluşturmak için aşağıdaki kademeler uygulanmalıdır; • *** Bölümlenme ile ilgili fonksiyon oluşturma (CREATE PARTITION FUNCTION) • *** Bölümlenme ile ilgili şema oluşturma. (CREATE PARTITION SCHEME) • *** Bölümlenmiş tablo oluşturma. (CREATE TABLE)
  • 13. INDEX Performans için en gerekli özelliklerinden biri de index yapısıdır. *** DISABLE: Bu ifade ile kullanıcıların geçici olarak clusteredindex yapısındaki index mekanizmasını açmasını engeller. Tekrar aktif hale getirmek için REBULID ifadesi kullanılır. *** REBUILD: Tek bir index veya bulunan tüm index'leri yeniden aktivite etmek için kullanılır. DBCC DBREINDEX ifadesinin yaptığını yapar. *** REORGANIZE: lndex yapısında bulunan leaf bölümünü yeniden düzenleyerek performansı arttırır. Bir nevi ekleme ve silmelerden dolayı oluşan index parçalanmalarını düzenleyerek, daha performanslı çalışmasını sağlar.
  • 14. • ONLINE={ON/OF}: Sorgulama veya güncelleme işlemlerinde tablonun kilitli olup-olmamasını belirler. • ALLOW_ROW_LOCK={ON/OFF}:Satır bazlı kilitleme olup- olamamasını belirler. • ALLOW_PAGE_LOCK={ON/OFF}:Sayfa bazlı kilitleme olup- olamamasını belirler. • MAXDROP=işlemci sayısı:Kontrolün kaç işlemci tarafından yapılacağını belirler. Bu seçeneği server düzeyinde devreye sokmak için ise sys.sp_configure kullanılır. • PERFORMANS: Performansı arttıran diğer bir etken de nonclusterindex ile beraber kullanılan key değeri bulunmayan sütunların yapıya dahil edilmesidir. Bunun maksimum limiti 16 sütundur. • INDEX BÖLÜMLEME: Bir önceki bölümde anlattığımız ve üç adımda oluşan tablo bölümleme işlemi aynen index yapısı için de geçerlidir.Büyük indexbilgileri ayrı dosya gruplarında tutularak performansarttırılabilir.
  • 15. İLERİ DATA MANIPULATIONLAN.(DML) ÖZELLİKLERİ: OUTPUT: SQL Server içinde bir trigger oluşturduğumuz zaman inserted ve deleted özel tablolarında bulunan bilgiler ile işlemler gerçekleştirme; eski versiyonda olduğu gibi, yeni versiyonda da devam etmektedir.  Aşağıdaki hallerin dışında herhangi bir DML ifadesi içinde OUTPUT kullanılabilir. *** Hedef view yapısında INSERT ifadesi. *** Uzaktaki tablo ve view için kullanılacak DML ifadeleri. *** Lokal veya dağıtılmış bölünmüş view yapılarında
  • 16. COMMON TABLE EXPRESSION(CTES): Temel yapısı SELECT sorgusu içermektedir. SELECT, INSERT, UPDATE ve DELETE ifade sonuçları yakalanabilir. • Kullanım ifadeleri: WITH <common_table_expression> [,...n]] <common_table_expression>::= expression_ad [{sütun ad[,...n])] AS (<CTE_sorgu_tanımlaması>) • Expression_ad: CTE adıdır. Herhangi bir isimi olabileceği gibi, veri tabanında bulunan bir tablo adı bile olabilir. • Sütun_ad: CTE için kullanılacak sütun adı veya adlarıdır. Seçilen sütun sayısı ile sorgu sonucu oluşan sütun sayısı birbiriyle aynı olmalıdır. • CTE_sorgu_tanımlaması: Sonuç yapısı için kullanılacak özel SELECT ifadesidir.
  • 17. • Aşağıdaki yapılar CTE_sorgu tanımlamasında kullanılmaz. *** COMPUTE or COMPUTE BY *** ORDER BY (TOP ifadesi varsa hariç) *** INTO *** OPTİON (sorgu yapısında) *** FOR XML *** FOR BROWSE Kullanılması: • CTE sütun listesi seçilir. • CTE SELECT sorgusu oluşturulur. • Sorgu içinde CTE kullanılır Eski yapıda türetilmiş tablolar ayrı ayrı oluşturulurken, bu yapıyla birlikte aynı kod içinde bulunması; okunabilirliği ve basitliği arttırır. Ayrıca kod hiyerarşi karmaşıklığından kurtuluruz.
  • 18. PIVOT UNPIVOT • Geniş veri tabanları için güçlü çapraz sorgular oluşturmakta yararlanacağımız yeni bir özelliktir. • PIVOT ile çapraz sorgular oluşturularak; sum, average, count gibi fonksiyonlar ve gruplamalar yapılabilir. Microsoft Access programının Transformifadesine benzer. • Kullanım Şekli: SELECT*FROM tablo_kaynağı PIVOT(küme_fonksiyon( sütun_değer) FOR pivot_sütun IN(<sütun_liste>) ) tablo_takmaad • UNPIVOT ise sütunu değere dönüştürür. PIVOT yapısının zıttıdır. UNPIVOT kullanım şekli, PIVOT yapısına benzer. Ancak PIVOT yerine özel UNPIVOT işlemleri kullanılır.
  • 19. APPLY Birbirleri ile JOIN ifadesi ile ilişkilendirilmiş tablonun her bir satırını tablo fonksiyonu olarak döndürmek için kullanılır. İki çeşidi vardır; *** CROSS APPLY: Yalnızca satırları bir tablo fonksiyonu döndürür. *** OUTER APPLY: Tüm satırları tablo fonksiyonu döndürür. Satır yoksa veya null değeri taşıyorsa bile döndürme işlemini gerçekleştirir.
  • 20. DİZİ(RANK) FONKSİYONLAR • SQL Server dört çeşit dizi fonksiyonuna destek vermektedir. Bunlar; RANK, DENSE_RANK, NTITLE ve ROW_NUMBER.Hepsinin de OVER cümleciği ile beraber kullanılması gerekmektedir. • OVER ifadesi bölümlenmeyi ve satır sıralanmasını sağlar. Kullanım şekli aşağıdaki gibidir; over ([ PARTITION BY < ifade_deðeri > , ... [ n ] ] ORDERBY<sütun> [ ASC | DESC ] [, ...[ n ] ]) • PARTITION BY cümleciği ile dizi için satırların nasıl gruplanacağı belirlenir. Her bir bölümün satır sıralanmasının nasıl olacağı ise ORDER BY cümleciği ile ayarlanır. • RANK:Sonuç yapısı içinde ayrılmış özel bir bölümle birlikte her bir satırın dizi olarak dönmesi için kullanılan fonksiyondur. Eğer OrderBy ile belirtilen değeri birden fazla hücre içinde varsa aynı dizi numarasını alırlar.
  • 21. HATA KONTROLÜ Hata kontrolü bazı Transact-SQL ifadeleri için vazgeçilmezdir. Exception; .NET dilleri için ortak ve yaygın kullanılan bir yapıdır. Bu sürüm ile SQL Server 2005 bünyesinden itibaren dahil edilmiştir. TRY... CATCH: TRY...CATCHbloğu Exceptionyapısında kullanılır. TRY bloğu esas çalışması gereken kodu içerirken, CATCH bloğu ise hata durumunda devreye girecek ifadeleri içerir. Kullanım Şekli: BEGINTRY {sql ifadesi /sql ifadelen} ENDTRY BEGINCATCH {sql ifadesi/sql ifadeleri} ENDCATCH