1. GENEL BİLGİLER VE GİRİŞ 
 
17
1.1. Veri Yönetim Yaklaşımları, Avantaj ve Dezavantajları 
 
17
1.2. Veritabanı ve Veritabanı Yönetim Sistemi 
 
18
1.3. Veritabanı Türleri 
 
18
1.4. Veritabanı Tasarımı 
 
19
1.5. Varlık İlişki Modelleri 
 
20
1.6. MS–SQL Server Veritabanı ve Kurulumu 
 
21
1.7. SQL Server Management Studio ve Kurulumu 
 
27
1.8. Basit Bir Veritabanı Oluşturma 
 
31
2. İLİŞKİSEL VERİTABANI 
 
35
2.1. Tablo, Satır ve Sütun 
 
35
2.4.1. Birincil ve İkincil Anahtar 
 
40
2.4.2. Varsayılan Değer ve Not Null 
 
42
2.4.3. Tekil Değer Özelliği 
 
43
2.4.4. Otomatik Artan Sayı 
 
44
2.4.5. Diğer Alan Özellikleri 
 
45
2.5. Veritabanında Yazım Kuralları 
 
46
3. ÖRNEK VERİTABANI VE SORGULAMA DİLİ
 
3.1. Tablolar Arası İlişkiler 
 
51
3.2. Sorgulama Dili (SQL–Structed Query Language) 
 
54
3.2.1. Veri Tanımlama Dili (DDL–Data Definition
 
3.2.1.1. Create Komutu 
 
56
3.2.1.4. Truncate Komutu 
 
60
3.2.1.5. Yorum (Comment) Komutları 
 
61
3.2.1.6. Yeniden Adlandırma (sp_rename)
 
3.2.2. Veri Düzenleme Dili (DML–Data Manuplation
 
3.2.3. Veri Sorgulama Dili (DQL–Data Query Language) 
 
64
3.2.4. Veri Kontrol Dili (DCL–Data Control Language) 
 
66
3.2.4.3. Revoke Komutu 
 
66
3.2.5. Veri Yönetim Komutları (DAC–Data Administration
 
3.2.5.1. Server Audit Komutu 
 
67
3.2.6. İşlem Kontrol Komutları (TCC–Transactional Control
 
3.2.6.1. Commit ve Rollback Komutu 
 
69
3.2.6.2. Savepoint Komutu 
 
70
3.2.6.3. Set Transaction Komutu 
 
70
3.3. Veritabanı Yedekleme ve Yedekten Geri Dönme 
 
72
3.4. Veritabanı veya Nesnelerin Oluşturulma Kodları 
 
77
4. VERİ LİSTELEME SQL KOMUTLARI 
 
83
4.1. Verilerin Listelenmesi (Select) 
 
83
4.2. Listeleri Filtreleme 
 
84
4.2.1. Metin Veri Türüne Göre Filtreleme 
 
84
4.2.2. Sayı Veri Türüne Göre Filtreleme 
 
85
4.2.3. Tarih Veri Türüne Göre Filtreleme 
 
86
4.3. Listeleme Sorgularında Operatörler 
 
87
4.3.1. Karşılaştırma Operatörleri 
 
87
4.3.2. Mantıksal Operatörler 
 
88
4.3.3. İçinde ve İçinde Değil (IN, NOT IN) 
 
89
4.3.4. Arasında ve Arasında Değil (BETWEEN, NOT
 
4.3.5. Metin İçinde ve Metin İçinde Değil (LIKE,
 
4.4. Listelerin Sıralanması (Order by) 
 
91
4.5. Verileri Tekrarsız Listeleme (Distinct) 
 
92
4.6. Sorgu Performansını Ölçme 
 
93
4.7. Tür Dönüşümleri (Cast, Convert, Parse) 
 
94
4.8. Tür Dönüşümlerinde Hata ve Performans Karşılaştırması 
 
99
4.9. Veri Formatlama (Format) 
 
101
5. LİSTELERİN ÖZETLENMESİ SQL KOMUTLARI 
 
105
5.1. Verilerde Matematiksel İşlemler 
 
105
5.2. Verilerde Kümeleme 
 
106
5.2.1. Toplama Metodu (SUM) 
 
106
5.2.2. Ortalama Alma Metodu (AVG) 
 
106
5.2.3. En Küçük Değer Metodu (MIN) 
 
106
5.2.4. En Büyük Değer Metodu (MAX) 
 
107
5.2.5. Değer Sayma Metodu (COUNT) 
 
107
5.2.6. Varyans Metodu (VAR) 
 
107
5.2.7. Standart Sapma Metodu (STDEV) 
 
108
5.2.8. Diğer Kümeleme Metotları 
 
108
5.3. Gruplama İşlemi (GROUP BY) 
 
108
5.4. Gruplama Sonrası Filtreleme (HAVING) 
 
110
5.5. Metinler ile İlgili Metotlar 
 
111
5.5.1. Metinsel Birleştirme (+, CONCAT) 
 
111
5.5.2. Boşluk Silme Metodu (TRIM) 
 
111
5.5.3. Başta ve Sonda Boşluk Silme Metodu (LTRIM,
 
5.5.4. Büyük Harf ve Küçük Harf Metodu (UPPER ve
 
5.5.5. Parçanın İndisini Alma (CHARINDEX) 
 
113
5.5.6. Parça Metin Alma (SUBSTRING) 
 
113
5.5.7. Soldan ve Sağdan Metin Alma (LEFT ve RIGHT) 
 
114
5.5.8. Uzunluk Alma (LEN) 
 
114
5.5.9. Metni Tersten Yazma (REVERSE) 
 
114
5.5.10. Metin Değiştirme () 
 
115
5.6. Metinleri Parçalama (STRING_SPLIT) 
 
115
5.7. Diğer Metinsel Metotlar 
 
115
5.8. Matematiksel Metotlar 
 
116
5.8.1. Mutlak Değer Alma (ABS) 
 
116
5.8.2. Karekök Alma (SQRT) 
 
117
5.8.3. Kare Alma (SQUARE) 
 
117
5.8.4. Rastgele Sayı Üretme (RAND) 
 
117
5.8.5. Üs Alma (POWER) 
 
118
5.8.6. Üst Sayıya Yuvarlama (CEILING) 
 
118
5.8.7. Alt Sayıya Yuvarlama (FLOOR) 
 
119
5.8.8. Yuvarlama (ROUND) 
 
119
5.8.9. Trigonometrik Metotlar (SIN, COS, TAN, COT) 
 
119
5.8.10. e Sayısının Üssü (EXP) 
 
119
5.8.11. Logaritma (LOG) 
 
120
5.8.12. Diğer Matematiksel Metotlar 
 
120
5.9. Tarih–Saat Metotları 
 
120
5.9.1. Tarih Parçası Alma (DAY, MONTH, YEAR,
 
5.9.2. Çalıştırma Zamanı Döndürme (getdate, sysdatetime,
 
5.9.3. Zaman Oluşturma Metotları 
 
123
5.9.4. Tarihler Arası Fark Alma (DATEDIFF,
 
5.9.5. Tarihlere Süre Ekleme (DATEADD) 
 
125
5.10. Tarih Dönüştürme (SWITCHOFFSET, EOMONTH,
 
5.10.1. Oturumun Sorgularının Formatını Öğrenme ve
 
Değiştirme (DATEFIRST, DATEFORMAT,
 
5.10.2. Zaman Verisi Kontrolü (ISDATE) 
 
127
6. İLİŞKİLİ TABLO SORGULARI 
 
129
6.1. Tabloları Birleştirme/İlişkilendirme 
 
129
6.1.1. Farklı İlişkilendirme Yöntemleri (Inner Join,
 
Left Join, Right Join, Full Outer Join) 
 
136
6.3. Sorgu Kümeleme Operatörleri 
 
143
6.3.1. Sorguları Birleştirme (UNION) 
 
143
6.3.2. Listeden Herhangi Biri (ANY, SOME, IN) 
 
144
6.3.3. Listeden Tümü Ya Da Hiçbiri (ALL) 
 
144
6.3.4. Listede Kayıt Var Ya Da Yoksa (EXISTS, NOT
 
6.3.5. İki Listeden Birinde Olup Diğerinde Olmayan
 
6.3.6. İki Listede Aynı Anda Olan (INTERSECT) 
 
146
7. İLERİ DÜZEY T–SQL KODLARI 
 
147
7.2.1. Değişken İsimlendirme Kuralları 
 
150
7.2.2. Sistem Değişkenleri 
 
151
7.3. Kontrol Deyimleri 
 
152
7.3.2. IF–Else, IIF ve Case–When–Then 
 
152
7.3.3. While–Break–Continue 
 
157
7.3.6. Pivot ve Unpivot Tablolar Oluşturma 
 
161
7.3.7. Geçici Tablolar (Temp Table) Oluşturma 
 
166
7.3.8. Tablo İçeriği Kopyalama (INTO) 
 
168
7.3.9. Toplu Kayıt Girme (Bulk Insert) 
 
169
7.3.10. Dinamik SQL Sorgusu Çalıştırma 
 
173
8. İLERİ VERİTABANI İŞLEMLERİ 
 
175
8.1. Görünüm Oluşturma ve Silme (VIEW) 
 
175
8.3. Stored Procedure Oluşturma 
 
185
8.4. Fonksiyon Oluşturma 
 
193
8.5. Trigger Oluşturma 
 
198
8.5.1. Sunucu Seviyesinde Trigger 
 
199
8.5.2. Veritabanı Seviyesinde Trigger 
 
200
8.5.3. Tablo/View Seviyesinde Trigger 
 
201
8.6. İmleç (Cursor) Kullanma 
 
204
8.6.1. İmleç Hareket Yönleri 
 
207
8.6.2. İmleç (cursor) Türleri 
 
208
8.7. Şifreli Sorgu Oluşturma (With Encryption) 
 
210
9.1. SQL Enjeksiyon (SQL Injection) 
 
213
9.2. Verileri Şifreleme (Always Encrypted) 
 
215
9.2.1. Saydam Veri Şifreleme (Transparent Data
 
9.2.2. Sütun Düzeyinde Şifreleme (Column Level
 
9.2.3. Her Zaman Şifreli Veri Yapısı (Always Encrypted) 
 
220
9.3. Kimlik Doğrulama 
 
224
9.4. Kullanıcı Tanımlama, Güncelleme ve Silme 
 
225
9.4.1. Kullanıcı Yetkilendirme 
 
227
9.4.2. Veritabanı Düzeyinde İşlem Yetkilendirmeleri 
 
229
9.4.3. Nesne Özelinde Yetki Verme 
 
232
9.4.4. Satır Düzeyinde Yetkilendirme 
 
233
9.4.5. SQL Sunucu Erişimini Engelleme 
 
234
9.5. Kullanıcı Tanımlı Yetkiler 
 
235
10.1. Hibrit İşlem/Analitik Süreci (Hybrid Transactional ve
 
Analytical Processing– HTAP) 
 
237
10.3. Disk Tabloları ve Bellek İçi Tablolar 
 
238
10.4. Doğal Derlenmiş Saklı Yordamlar (Natively Complied
 
10.5. Geçici Veritabanı (TempDB) 
 
241
10.6. Akıllı Sorgu İşleme (Intelligent Query Processing–IQP) 
 
241
10.7. Hibrit Arabellek Havuzu (Hybrid Buffer Pool) 
 
243
10.8. Sorgu Depoları (Query Store) 
 
244
10.9. Automatic Tuning 
 
247
10.9.1. Automatic Plan Correction 
 
248
10.9.2. Automatic Index Management 
 
248