SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

  1. Ana sayfa
  2. Blog
  3. Veritabanları ve SQL

Veritabanları ve SQL

SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

CASE WHEN, SQL’de if-then mantığını nasıl yazdığınızdır. Her iki formu da öğrenin, ardından NULL ve sıralama tuzaklarından kaçınırken bunu etiketler, pivot tarzı raporlar, özel sıralama ve güvenli güncellemeler için kullanın.

8 dk okuma
SQL CASE WHEN ifadesi: sözdizimi, gerçek örnekler ve yaygın hatalar

Önemli noktalar

  • CASE, doğru olan ilk koşulu temel alan bir değer döndürür.
  • En spesifik koşulları ilk sıraya koyun, aksi takdirde daha sonraki koşullara asla ulaşılamayabilir.
  • ELSE olmadığında eşleşmeyen satırlar NULL değerini döndürür.
  • SUM veya COUNT içinde, CASE bir sorguyu kompakt pivot tarzı bir rapora dönüştürür.

Çoğu raporun bir mantığa ihtiyacı vardır: siparişleri büyük veya küçük olarak etiketleyin, ödenmiş ve bekleyen siparişleri yan yana sayın veya acil öğeleri ilk önce gösterin. SQL CASE WHEN tüm bunları doğrudan bir sorgu içinde işler ve tüm önemli veritabanlarında çalışır.

Burada her sorguyu SQLite 3.50’de çalıştırdık ve gösterilen sonuçlar bu çalıştırmadan geliyor. CASE standart SQL’in bir parçasıdır, dolayısıyla bu örnekler için PostgreSQL, MySQL, SQL Server ve Oracle’da aynı şekilde davranır.

DURUM NE ZAMAN?

CASE ayrı bir komut değil, bir ifadedir. Koşulları sırayla değerlendirir ve bir değer döndürür, böylece bir değere izin verilen her yere gidebilir: SELECT, WHERE, GROUP BY, ORDER BY veya işlevlerin içinde. Her zaman END ile biter.

CASE
  WHEN condition1 THEN result1
  WHEN condition2 THEN result2
  ELSE fallback
END

Örnek tablo

CREATE TABLE orders (id INT, customer TEXT, total INT, status TEXT);

INSERT INTO orders VALUES
 (1,'Asha',1200,'paid'), (2,'Ben',300,'pending'),
 (3,'Asha',800,'paid'), (4,'Chitra',2500,'shipped'),
 (5,'Dev',150,'cancelled'), (6,'Ben',NULL,'pending');

6. sıranın toplamının olmadığına dikkat edin. Bu satır daha sonra önemlidir.

CASE arandı

Her WHEN kendine ait tam bir koşula sahip olduğundan bu daha esnek biçimdir:

SELECT id, total,
       CASE
         WHEN total >= 1000 THEN 'large'
         WHEN total >= 500 THEN 'medium'
         ELSE 'small'
       END AS size
FROM orders;

-- 1 | 1200 | large
-- 2 |  300 | small
-- 3 |  800 | medium
-- 4 | 2500 | large
-- 5 |  150 | small
-- 6 | NULL | small

Son sıraya bakın. Sipariş 6’nın toplamı yok ancak “küçük” olarak etiketleniyor. NULL ile yapılan her iki karşılaştırma da doğru değildi, dolayısıyla ELSE‘e düştü. NULL bölümünde bunun nasıl düzeltileceğini gösteriyoruz. Sonuca her zaman AS kullanarak bir ad verin, aksi takdirde garip bir sütun adı alabilirsiniz.

Basit VAKA

Bir sütunu sabit değerlerle karşılaştırırken kısa biçim daha iyi okunur:

SELECT id,
       CASE status
         WHEN 'paid' THEN 'Complete'
         WHEN 'shipped' THEN 'Complete'
         WHEN 'pending' THEN 'Waiting'
       END AS label
FROM orders;

-- 1 | Complete
-- 2 | Waiting
-- 3 | Complete
-- 4 | Complete
-- 5 | NULL
-- 6 | Waiting
formu Karşılaştırır Aralıkları kullanabilir miyim? Şunun için en iyisi:
Basit Eşitlik için bir ifade Hayır Kodları etiketlerle eşleştirme
Aranan Şube başına herhangi bir koşul Evet Aralıklar, birden çok sütun, NULL denetimleri

Sipariş önemlidir

CASE ilk doğru koşulda durur ve bu en yaygın mantık hatasıdır. Önceki sorgumuzdaki iki koşulu değiştirin:

SELECT id, total,
       CASE
         WHEN total >= 500 THEN 'medium'
         WHEN total >= 1000 THEN 'large'
         ELSE 'small'
       END AS size
FROM orders WHERE id IN (1, 4);

-- 1 | 1200 | medium
-- 4 | 2500 | medium

Artık hiçbir şey “büyük” olamaz. Toplam 2500 de en az 500’dür, yani ilk dal kazanır ve ikinciye asla ulaşılamaz. Hiçbir hata görünmüyor, yalnızca yanlış etiketler görünüyor. Aralıklar için en kısıtlayıcı koşulu ilk sıraya koyun veya total >= 500 AND total < 1000 gibi tam aralıkları yazın.

ELSE olmadığında ne olur?

Yukarıdaki basit CASE örneğimizde, 5. sipariş iptal edildi ve hiçbir şube bunu ele almadı, dolayısıyla sonuç NULL oldu. Bir sonraki bölümün de gösterdiği gibi, bazen tam olarak istediğiniz şey budur. Ancak etiketler oluştururken açık bir ELSE 'other' genellikle daha iyidir, çünkü raporda boşluk bırakmak yerine beklenmeyen değerleri görünür kılar.

İpucu: Tüm dallar aynı türü döndürmelidir. Metin ve sayıların karıştırılması SQLite’ta gevşek bir şekilde çalışır, ancak PostgreSQL gibi daha katı veritabanları bir hataya neden olur veya değerleri istemediğiniz şekillerde dönüştürmeye çalışır.

SUM ile pivot tarzı raporlar

Bu günlük SQL’deki en kullanışlı kalıplardan biridir. CASE’in toplu olarak sarılması, satırları müşteri başına bir satır olacak şekilde sütunlara dönüştürür:

SELECT customer,
       SUM(CASE WHEN status = 'paid' THEN total ELSE 0 END) AS paid,
       SUM(CASE WHEN status = 'pending' THEN 1 ELSE 0 END) AS pending_orders
FROM orders
GROUP BY customer
ORDER BY customer;

-- Asha   | 2000 | 0
-- Ben    |    0 | 2
-- Chitra |    0 | 0
-- Dev    |    0 | 0

Artık tek bir sorgu, ayrı sorgulara veya birleştirmelere gerek kalmadan hem ödenen geliri hem de bekleyen siparişlerin sayısını veriyor. Bu kalıp, yalnızca bazılarının sunduğu özel PIVOT sözdiziminin aksine, hemen hemen her veritabanında çalışır. Eğer GROUP BY sizin için yeniyse, SQL GROUP BY ve HAVING‘ü okuyun.

Koşullu sayımlar

COUNT NULL’ları atlar, dolayısıyla ELSE içermeyen bir CASE yalnızca eşleşen satırları sayar:

SELECT COUNT(*) AS all_orders,
       COUNT(CASE WHEN status = 'paid' THEN 1 END) AS paid_orders,
       COUNT(CASE WHEN total >= 1000 THEN 1 END) AS large_orders
FROM orders;

-- 6 | 2 | 2

Dikkatli olun: COUNT‘nin içine ELSE 0 eklerseniz her satır sayılır, çünkü 0 NULL değildir. ELSE 0‘ü SUM ile kullanın ve COUNT ile dışarıda bırakın. PostgreSQL ve SQLite da COUNT(*) FILTER (WHERE ...)‘yı desteklemektedir, bu da güzel bir şekilde okunmaktadır, ancak her yerde mevcut değildir.

Bir CASE’e göre gruplama

Kendi paketlerinizi oluşturabilir ve ardından bunları özetleyebilirsiniz:

SELECT CASE WHEN total >= 1000 THEN 'large' ELSE 'other' END AS bucket,
       COUNT(*)
FROM orders
GROUP BY bucket
ORDER BY bucket;

-- large | 2
-- other | 4

Takma ada göre gruplama SQLite, PostgreSQL ve MySQL’de çalışır. SQL Server buna izin vermediğinden ifadenin tamamını tekrarlamanız veya sorguyu önce bir CTE‘ye veya alt sorguya yerleştirmeniz gerekir.

ORDER BY ile özel sıralama

Alfabetik sıra nadiren bir işletmenin istediği şeydir. CASE kendi sıranızı tanımlamanıza olanak tanır:

SELECT id, status FROM orders
ORDER BY CASE status
           WHEN 'pending' THEN 1
           WHEN 'paid' THEN 2
           ELSE 3
         END, id;

-- 2 | pending
-- 6 | pending
-- 1 | paid
-- 3 | paid
-- 4 | shipped
-- 5 | cancelled

Bekleyen siparişler önce gelir, bu da iş kuyruğu için kullanışlıdır. İkinci sıralama sütunu id, her gruptaki satırları öngörülebilir bir sırada tutar.

GÜNCELLEMEDEKİ VAKA

CASE, bir ifadenin farklı satırlara farklı değişiklikler uygulamasına olanak tanır. Burada, bekleyen küçük siparişler incelenmek üzere işaretlenir:

UPDATE orders
SET status = CASE
               WHEN status = 'pending' AND total < 500 THEN 'review'
               ELSE status
             END;

SELECT id, status FROM orders WHERE customer = 'Ben';

-- 2 | review
-- 6 | pending

ELSE status diğer satırları değiştirmeden tutar. Bunu dışarıda bırakmak tehlikelidir çünkü eşleşmeyen satırlar NULL olarak ayarlanacaktır. Bir WHERE cümlesi olmadan bu ifade aynı zamanda her satıra da etki eder, bu nedenle büyük tablolarda bir filtre ekleyin ve değişikliği bir işlem içine sarmayı düşünün, böylece taahhütte bulunmadan önce sonucu kontrol edebilirsiniz. 6. sıranın değişmediğine de dikkat edin, çünkü NULL toplamı total < 500‘i karşılamadı.

BOŞ tuzaklar

NULL, CASE ile iki ayrı soruna neden olur. İlk olarak, basit form eşitliği kullanarak karşılaştırır ve hiçbir şey NULL’a eşit değildir, hatta NULL’un kendisi bile:

SELECT CASE NULL WHEN NULL THEN 'matched' ELSE 'not matched' END;

-- not matched

Yani CASE col WHEN NULL asla eşleşmez. Bunun yerine IS NULL ile aranan formu kullanın. İkinci olarak, 6. sırada gördüğümüz gibi, NULL değeri karşılaştırmaların ötesine geçerek ELSE‘e ulaşır. Düzeltme ilk önce onu kontrol etmektir:

SELECT id,
       CASE
         WHEN total IS NULL THEN 'unknown'
         WHEN total >= 1000 THEN 'large'
         ELSE 'other'
       END AS size
FROM orders WHERE id IN (1, 2, 6);

-- 1 | large
-- 2 | other
-- 6 | unknown

Sipariş 6 artık dürüst bir etiket alıyor. SQL NULL değerlerine ilişkin kılavuzumuz bu davranışı tam olarak kapsamaktadır.

CASE ve diğer seçenekler

Seçenek Çalışıyor Ne zaman kullan
VAKA Tüm önemli veritabanları Taşınabilir mantık istiyorsunuz
BİRLEŞME Tüm önemli veritabanları Yalnızca NULL için bir geri dönüşe ihtiyacınız var
IF() MySQL Basit, iki yönlü bir seçim
IIF() SQL Sunucusu, SQLite Basit, iki yönlü bir seçim
DECODE() Kahin Eski Oracle kodu
Arama tablosu Hepsi Eşleme uzun veya sık sık değişiyor

Bu son seçenek üzerinde düşünmeyi hak ediyor. Bir CASE otuz dallara ulaşırsa ve beş sorguda görünürse, eşlemeyi bir tabloya taşıyın ve ona birleştirin. O zaman değişiklik, beş yerdeki kod değişikliği yerine tek satırlık bir güncellemedir.

Yaygın hatalar

  • Yanlış koşul sırası. Geniş bir koşul öncelikle daha dar olanları gizler.
  • Unutmak END. Bu en sık görülen sözdizimi hatasıdır.
  • WHEN NULL kullanılıyor. Hiçbir zaman eşleşmez, bu nedenle WHEN col IS NULL‘ü kullanın.
  • COUNT‘ün içine ELSE 0 ekleniyor. Tüm satırları sayar.
  • Güncellemede ELSE‘nin atlanması. NULL içeren değerleri silebilir.
  • WHERE‘de CASE’e göre filtreleme. Bir dizinin kullanılmasını durdurabilir. SQL sorgu optimizasyonuna ilişkin kılavuzumuza bakın.

Son sözler

CASE WHEN çok fazla iş yapan küçük bir özelliktir. Üç kuralı unutmayın: ilk gerçek dal kazanır, eşleşmeyen satırlar ELSE olmadan NULL olur ve NULL’un kendi kontrolüne ihtiyacı vardır. Alıştırma yapmak için, halihazırda birkaç sorguyla oluşturduğunuz bir raporu alın ve bunu SUM(CASE ...) kullanarak tek bir sorgu olarak üretmeye çalışın.

Sık sorulan sorular

CASE WHEN SQL’de ne yapar?

Bir sorguya if-then mantığını ekler. SQL her koşulu sırayla kontrol eder ve doğru olan ilk koşulun değerini veya doğru değilse ELSE değerini döndürür.

CASE ifadesinde ELSE yoksa ne olur?

Hiçbir koşulla eşleşmeyen satırlar NULL değerini döndürür. Bu, COUNT içinde kullanışlıdır ancak etiketlerde ve güncellemelerde boşluklara veya veri kaybına neden olabilir.

CASE’i WHERE yan tümcesinde kullanabilir miyim?

Evet çünkü bu bir ifadedir. Bununla birlikte, düz AND ve OR koşulları genellikle daha nettir ve bir indeksten yararlanma olasılıkları daha yüksektir.

Basit ve aranan CASE arasındaki fark nedir?

Simple CASE, bir ifadeyi eşitlik için sabit değerlerle karşılaştırır. Aranan CASE’in her WHEN’de tam koşulu vardır, dolayısıyla aralıkları ve NULL kontrollerini işleyebilir.

CASE ifadeleri iç içe yerleştirilebilir mi?

Evet, bir CASE diğerinin içinde görünebilir. Derin yuvalamayı okumak zorlaşır, bu nedenle koşulları AND ile birleştirmeyi veya bir arama tablosu kullanmayı düşünün.

Öğrenmeye devam et

Stack Quora ile çalışın

Test, WordPress veya SEO konusunda yardıma mı ihtiyacınız var?

Ekiplerin daha iyi yazılımlar sunmasına ve sitelerini büyütmesine yardımcı oluyoruz. Bize ne üzerinde çalıştığınızı söyleyin, biz de bir sonraki adım için net bir öneride bulunalım.

Okumaya devam et

Daha fazla kılavuz test, yapay zeka ve modern geliştirme

Bu makaleyi beğendiniz mi? Bir konu seçin ve doğrudan en yeni eğitimlerimize geçin.

Yapay zekâ

Yapay Zeka Halüsinasyonları Açıklandı: Dil Modelleri Neden İşleri Düzeltiyor ve Nasıl Azaltılabilir?

Yapay zeka halüsinasyonları açıkladı: ne olduklarını, dil modellerinin bunları neden ürettiğini, yaygın türlerini, temellendirme ve yönlendirmelerle…

Makaleyi okuyun →
DevOps

Açıklanan Ortam Değişkenleri: .env Dosyaları, Sırlar ve Yapılandırma Doğru Yapıldı

Çalıştırdığımız Python örnekleriyle açıklanan ortam değişkenleri: bunları okumak ve ayarlamak, neden her değerin bir dize olduğu, .env dosyaları, sü…

Makaleyi okuyun →
Yazılım geliştirme

API Hız Sınırlamasının Açıklaması: Algoritmalar, Başlıklar ve 429 Hatalarının Ele Alınması

API hızı sınırlaması, çalıştırdığımız bir simülasyonla açıklanmıştır: belirteç kümesi, sabit pencere, kayan pencere, 429 yanıt, hız sınırı başlıklar…

Makaleyi okuyun →
Test otomasyonu

Python'da alay etme: Unittest.mock, patch ve Testleri Yalan Yapan Hatalar

Unittest.mock ile Python'da alay etme, test edildi: Sahte ve dönüş_değeri, yan_etki, bir adın kullanıldığı yerde yama uygulama, spesifikasyon ve oto…

Makaleyi okuyun →
Yazılım testi

Kod Kapsamının Açıklaması: Hat ve Şube Kapsamı ve %100'ün Gerçek Anlamı

Kod kapsamı gerçek bir kapsama.py çalışmasıyla açıklanmıştır: hat, şube ve durum kapsamı, bir raporun okunması, %100 kapsamın neden hâlâ hataları ka…

Makaleyi okuyun →
Veritabanları ve SQL

SQL'de DELETE vs TRUNCATE vs DROP: Farklılıklar, Geri Alma ve Her Biri Ne Zaman Kullanılmalı

DELETE vs TRUNCATE vs DROP test edilmiş SQL ile açıklandı: her birinin neyi kaldırdığı, geri aldığı, tetiklediği, kimlik sıfırlaması, hızı ve Postgr…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL Görünümleri: Örneklerle Tuzakları Oluşturun, Kullanın ve Önleyin

Çalıştırdığımız sorgularla açıklanan SQL görünümleri: görünüm oluşturma, canlı sonuçlar, sütunları gizleme, performans, güncellenebilir ve gerçekleş…

Makaleyi okuyun →
Yazılım geliştirme

TypeScript Arayüzü ve Tür: Gerçek Farklılıklar, Derleyiciyle Test Edildi

TypeScript arayüzü ve türü, gerçek derleyiciyle kontrol edildi: her ikisinin de yapabileceği, yalnızca birinin yapabileceği, bildirim birleştirme, g…

Makaleyi okuyun →
Yazılım geliştirme

Python *args ve **kwargs'ın Açıklaması: Açık Örneklerle Esnek Fonksiyonlar

Python *args ve **kwargs çalıştırdığımız kodla açıklanmıştır: paketleme ve paketten çıkarma, parametre sırası, yalnızca anahtar kelime ve yalnızca k…

Makaleyi okuyun →
Yazılım geliştirme

Python Lambda İşlevleri: Söz Dizimi, Gerçek Kullanımlar ve Ne Zaman Kullanılmaması Gerektiği

Çalıştırdığımız kodla açıklanan Python lambda işlevleri: sözdizimi, anahtarla sıralama, harita ve filtre, kapatmalar, geç bağlama tuzağı ve normal b…

Makaleyi okuyun →
Yapay zekâ

Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

Yapay zeka ajanları nedir? Aracı döngüsüne, araçlara, belleğe ve korkuluklara ilişkin basit bir kılavuz, çalıştırdığımız küçük bir Python döngüsü, g…

Makaleyi okuyun →
DevOps

İzleme ve Gözlemlenebilirlik: Günlükler, Metrikler ve İzlerle Gerçek Fark

İzleme ve gözlemlenebilirliğin açıklanması: bilinen ve bilinmeyen arızalar, günlükler, ölçümler ve izler, ödeme olayının gözden geçirilmesi, altın s…

Makaleyi okuyun →
DevOps

Docker Birimleri ve Bağlama Bağlantıları: Konteyner Verilerini Doğru Şekilde Kalıcılaştırın

Docker birimleri ile bağlama bağlamaları arasındaki karşılaştırma açıklandı: kapsayıcı verilerinin neden kaybolduğu, adlandırılmış birimler, bağlama…

Makaleyi okuyun →
Test otomasyonu

TDD ve BDD: Temel Farklılıklar, Her İki Şekilde Geliştirilmiş Bir Özellik ve Her Birinin Ne Zaman Kullanılacağı

TDD ve BDD, her iki yönde de oluşturulmuş bir indirim özelliğiyle açıklandı: çalıştırdığımız kodla kırmızı-yeşil-refactor, Verilen-Ne Zaman-O Zaman …

Makaleyi okuyun →
Yazılım testi

Kullanıcı Kabul Testi (UAT): Süreç, Kontrol Listesi ve Gerçek Örnekler

Kullanıcı kabul testi açıklandı: bunu kimin yürüttüğü, QA'dan farkı, yedi adımlı bir süreç, bir UAT test senaryosu şablonu, bir kontrol listesi, otu…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL NULL Değerleri: IS NULL, COALESCE, NULLIF ve Kaçınılması Gereken Tuzaklar

SQL NULL değerleri, çalıştırdığımız sorgularla açıklandı: üç değerli mantık, IS NULL, COALESCE, NULLIF, toplamaların, birleştirmelerin ve sıralamanı…

Makaleyi okuyun →
Veritabanları ve SQL

SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

SQL CASE WHEN çalıştırdığımız sorgularla açıkladı: basit ve aranmış formlar, koşul sırası, SUM'lu pivotlar, COUNT hileleri, özel sıralama, güncellem…

Makaleyi okuyun →
Yazılım geliştirme

JWT Nedir? JSON Web Belirteçleri Bir Çalışma Örneğiyle Açıklanıyor

JWT nedir? JSON Web Tokens açıkladı: üç bölüm, çalıştırdığımız kodda oluşturulan ve üzerinde değişiklik yapılan bir token, JWT ile oturumlar, depola…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Olay Döngüsü Açıklaması: Örneklerle Çağrı Yığını, Mikro Görevler ve Zamanlayıcılar

JavaScript olay döngüsü çalıştırdığımız kodla açıklandı: çağrı yığını, görev ve mikro görev kuyrukları, setTimeout 0'ın neden anında olmadığı, engel…

Makaleyi okuyun →
Yazılım geliştirme

Python Jeneratörleri ve Verim Açıklaması: Gerçek Örneklerle Bellekten Tasarruf Edin

Python üreteçleri ve verim, çalıştırdığımız kodla açıklandı: nasıl duraklatılır ve devam ettirilir, ölçülen bellek tasarrufları, işlem hatları, sons…

Makaleyi okuyun →
Yapay zekâ

Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

Gömmeler nedir? Vektörler, kosinüs benzerliği ve anlamsal aramaya ilişkin sade dilli bir kılavuz; çalıştırdığımız küçük bir örnek, yaygın kullanımla…

Makaleyi okuyun →
DevOps

Mavi-Yeşil ve Kanarya Konuşlandırılması: Farklılıklar, Takaslar ve Nasıl Seçilir

Mavi-yeşil ve kanarya konuşlandırması açıklandı: her birinin nasıl çalıştığı, maliyet, risk ve geri alma, test ettiğimiz istikrarlı kullanıcı grubu,…

Makaleyi okuyun →
Test otomasyonu

Kesintili Testler: Bunların Sebepleri ve Nasıl Düzeltileceği

Yaptığımız demolarla açıklanan hatalı testler: ana nedenler, birinin nasıl doğrulanacağı ve teşhis edileceği, zamanlama için uygun düzeltmeler, payl…

Makaleyi okuyun →
Yazılım testi

Yük Testi ve Stres Testi: Farklılıklar, Metrikler ve k6 Örnekleri

Yük testi ve stres testinin açıklaması: her birinin neyi kanıtladığı, ani yükselme ve soğuma testleri, önemli ölçümler, ortalamaların neden yanıltıc…

Makaleyi okuyun →
Yazılım testi

Test Senaryosu ve Test Senaryosu: Temel Farklılıklar, Örnekler ve Her Biri Ne Zaman Kullanılmalı?

Test senaryosu ve test senaryosunun açıklaması: net tanımlar, yan yana tablo, senaryolardan vakalara, şablonlara ve her birinin ne zaman kullanılaca…

Makaleyi okuyun →
Veritabanları ve SQL

SQL Sorgu Optimizasyonu: Zamanlamalarla Yürütme Planlarını Okuyun ve Yavaş Sorguları Düzeltin

SQL sorgu optimizasyonu bir milyon satırda test edilmiştir: yürütme planlarını okuyun, doğru dizinleri ekleyin, değiştirilemeyen filtreleri düzeltin…

Makaleyi okuyun →
Veritabanları ve SQL

SQL UNION ve UNION ALL: Farklılıklar, Örnekler ve Test Edilmiş Performans

SQL UNION ve UNION ALL, yürüttüğümüz sorgularla açıklandı: kopyalar, her ikisinin de takip ettiği kurallar, gerçek bir veri hatası, ölçülen performa…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Fetch API Eğitimi: GET, POST, Hata İşleme ve Zaman Aşımları

Yerel bir sunucuya karşı test edilen bir JavaScript Fetch API öğreticisi: GET ve POST, 404'ün neden atmadığı, yeniden kullanılabilir bir yardımcı, s…

Makaleyi okuyun →
Yazılım geliştirme

Python Dosya İşleme: Örneklerle Okuma, Yazma, CSV, JSON ve pathlib

Python dosya işleme, çalıştırdığımız kodla açıklanmıştır: açık modlar, büyük dosyaları okuma, CSV, JSON, pathlib, ikili dosyalar, güvenli yazma, hat…

Makaleyi okuyun →
Yazılım geliştirme

Python Sınıfları ve Nesneleri: Gerçek Örneklerle OOP Eğitimi

Çalıştırdığımız kodla açıklanan Python sınıfları ve nesneleri: __init__, yöntemler, sınıf ve örnek nitelikleri, kalıtım, özellikler, dunder yöntemle…

Makaleyi okuyun →
Yazılım geliştirme

Git merge vs rebase: farklar, örnekler ve hangisi ne zaman kullanılır

Git merge vs rebase; gerçek log çıktısı, karşılaştırma tablosu, rebase'in altın kuralı ve güvenli bir ekip iş akışıyla anlatılıyor.

Makaleyi okuyun →
Yazılım geliştirme

Python Liste Üreteci (List Comprehension): Sözdizimi, Örnekler ve Kaçınılacak Durumlar

Python list comprehension anlatımı: sözdizimi, filtreleme, if-else, iç içe döngüler, ölçülmüş süreler ve düz for döngüsünün daha iyi olduğu durumlar.

Makaleyi okuyun →
Veritabanları ve SQL

SQL JOIN Örneklerle Açıklama (Inner, Left, Right, Full)

SQL JOIN'leri örnek tablolar ve sorgularla adım adım öğrenin: INNER, LEFT, RIGHT, FULL, CROSS ve SELF; yaygın hatalar ve performans ipuçları.

Makaleyi okuyun →