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