Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
18 yazı bulundu
Window Function'lar 1: OVER, PARTITION BY, ROW_NUMBER, RANK ve Grup Başına Top-N
Veritabanı SERİ 13

Window Function'lar 1: OVER, PARTITION BY, ROW_NUMBER, RANK ve Grup Başına Top-N

Window function, GROUP BY gibi hesap yapar ama row'ları çökertmez; sonucu her row'un yanına yazar. OVER ve PARTITION BY'ı, ROW_NUMBER, RANK, DENSE_RANK ve NTILE'ın eşitliklerdeki farkını, WHERE'de neden kullanılamadığını, CTE ile grup başına top-N'i, eşitlik kararını ve ROW_NUMBER ile güvenli duplicate silmeyi Bookstore verisinde gerçek çıktıyla gösteriyoruz.

8 Kas 2026 14 dk 5
Window Function'lar 2: Running Total, ROWS vs RANGE Frame'leri, LAG/LEAD ve Gaps and Islands
Veritabanı SERİ 14

Window Function'lar 2: Running Total, ROWS vs RANGE Frame'leri, LAG/LEAD ve Gaps and Islands

ORDER BY'lı bir window aggregate'in varsayılan frame'i RANGE UNBOUNDED PRECEDING'dir; aynı değerli row'lar aynı toplamı alır ve SQL Server worktable kullanır. Kümülatif toplamı, ROWS ile RANGE'in logical read farkını, eksik günlerle hareketli ortalamayı, LAG/LEAD'i, LAST_VALUE tuzağını, PERCENTILE_CONT ile medyanı ve gaps and islands'ı Bookstore verisinde gerçek çıktıyla gösteriyoruz.

8 Kas 2026 16 dk 5
INSERT, UPDATE, DELETE ve MERGE: OUTPUT, Upsert ve WHERE'siz UPDATE'e Karşı Güvenli Çalışma
Veritabanı SERİ 15

INSERT, UPDATE, DELETE ve MERGE: OUTPUT, Upsert ve WHERE'siz UPDATE'e Karşı Güvenli Çalışma

T-SQL'in UPDATE ... FROM'u bir hedef row'a birden çok kaynak row eşleşince hata vermez ve hangi değeri yazacağı belirsizdir; MERGE ise 8672 hatasıyla durur. Çok satırlı INSERT'i, OUTPUT ile yeni id'leri, standart correlated UPDATE'i, DELETE ile TRUNCATE'in log farkını, MERGE tuzaklarını, açık upsert'i ve @@ROWCOUNT kontrollü güvenli çalışmayı gerçek çıktılarla anlatıyoruz.

8 Kas 2026 14 dk 5
Aynı Sorgu Dört Lehçede: SQL Server, PostgreSQL, MySQL ve SQLite Arasındaki Farklar
Veritabanı SERİ 16

Aynı Sorgu Dört Lehçede: SQL Server, PostgreSQL, MySQL ve SQLite Arasındaki Farklar

Aynı Bookstore sorguları SQL Server, PostgreSQL, MySQL ve SQLite'ta farklı syntax ve farklı sonuç verir: MySQL'de || bir OR'dur ve 7 / 2 3.5000 eder, PostgreSQL büyük-küçük harfe duyarlıdır. Sayfalamayı, string birleştirmeyi, identity ve RETURNING'i, upsert'i, tarih function'larını, quoting'i, boolean'ı, NULL sıralamasını ve LATERAL'ı dört engine'de gerçek çıktılarla karşılaştırıyoruz.

8 Kas 2026 14 dk 5
SQL Server 2022 ile T-SQL'e Gelenler: IS DISTINCT FROM, GREATEST/LEAST, WINDOW, GENERATE_SERIES, DATE_BUCKET ve JSON Function'ları
Veritabanı SERİ 17

SQL Server 2022 ile T-SQL'e Gelenler: IS DISTINCT FROM, GREATEST/LEAST, WINDOW, GENERATE_SERIES, DATE_BUCKET ve JSON Function'ları

SQL Server 2022, NULL-güvenli karşılaştırma için IS DISTINCT FROM, GREATEST/LEAST, GENERATE_SERIES, DATETRUNC, DATE_BUCKET, karakterli TRIM, sıralı STRING_SPLIT, JSON_OBJECT/JSON_ARRAY ve APPROX_PERCENTILE_CONT getirdi. Her birini önce/sonra koduyla deniyor ve 150 seviyesinde GENERATE_SERIES, WINDOW ve TRIM LEADING'in neden çalışmadığını gerçek hata mesajlarıyla gösteriyoruz.

8 Kas 2026 12 dk 5
SQL Server 2025 ile T-SQL'e Gelenler: REGEXP Function'ları, Native JSON Tipi, || Operatörü, PRODUCT ve CURRENT_DATE
Veritabanı SERİ 18

SQL Server 2025 ile T-SQL'e Gelenler: REGEXP Function'ları, Native JSON Tipi, || Operatörü, PRODUCT ve CURRENT_DATE

SQL Server 2025, RE2 tabanlı REGEXP_LIKE/REPLACE/SUBSTR/INSTR/COUNT/MATCHES/SPLIT_TO_TABLE, native json tipi, JSON_ARRAYAGG/JSON_OBJECTAGG, || operatörü, PRODUCT, CURRENT_DATE, UNISTR ve BASE64 getirdi. Regex'in collation'ı yok saymasını, sabit önekli pattern'in index seek'ini, preview fuzzy function'ları ve REGEXP_LIKE'ın compatibility level 170 gereksinimini gerçek çıktılarla gösteriyoruz.

8 Kas 2026 13 dk 4
Blog Haritası