İnteraktif kurs
SQL Kursu
Tarayıcınızda çalışan gerçek bir Postgres ile SQL'i İngilizce olarak sıfırdan öğrenin.
01 · Modül 1 – Temel SEÇİM
Temeller: bir tablodan veri okumak ve filtrelemek.
- 1.1SQL'e girişSQL nedir, neden kullanılır ve veritabanı neye benzer?~5 min
- 1.2SEÇİN … İÇİNDENEn basit sorgu: bir tablodan satırların okunması.~10 min
- 1.3WHERE ile filtrelemeYalnızca bir koşulu karşılayan satırların seçilmesi.~10 min
- 1.4ORDER BY ile sıralamaSonuçları artan veya azalan şekilde sıralamak.~8 min
02 · Modül 2 — Daha güçlü SEÇİM
Sınırlayın, tekilleştirin, yeniden adlandırın ve sayın: Her gün kullandığınız araçlar.
- 2.1LIMIT ile sınırlamaÖrneğin skor tabloları oluşturmak için yalnızca ilk N satırın döndürülmesi.~6 min
- 2.2DISTINCT ile benzersiz değerlerBir SELECT sonucundan kopyaların kaldırılması.~6 min
- 2.3AS ile yeniden adlandırmaSonuçtaki sütunlara ve ifadelere daha okunaklı adlar verilmesi.~6 min
- 2.4Sayma ve özetleme: COUNT, AVG, MAXToplama işlevleri: birçok satırdan tek bir sayı elde etmek.~8 min
03 · Modül 3 — KATIL ve GRUPLAMA ŞARTI
Birden fazla tabloyu birleştirmek ve gruba göre raporlar üretmek: her gerçek sorgunun kalbi.
- 3.1İki tabloyu birleştirmek: INNER JOINFarklı tablolardaki satırların ilişkilerini takip ederek birleştirilmesi.~12 min
- 3.2Her şeyi solda tutmak: LEFT JOINDiğer tabloda eşleşmeyen satırlar dahil.~10 min
- 3.3GROUP BY ile gruplamaGrup başına, örneğin departman başına bir toplamın hesaplanması.~10 min
- 3.4Grupları filtreleme: HAVINGToplamda yalnızca bir koşulu karşılayan grupları tutmak.~8 min
04 · Modül 4 – Pratik SQL
Gerçek çalışmada fark yaratan araçlar: listeler, aralıklar, NULL'lar ve koşullu mantık.
- 4.1Listeler ve aralıklar: IN ve BETWEEN"Bunlardan biri" ve "A ile B arasında" için kompakt filtreler.~8 min
- 4.2NULL'ları İşleme: IS NULL ve COALESCEKayıp değerleri sürpriz olmadan tanımak ve bunlarla baş etmek.~10 min
- 4.3Koşullu mantık: CASE WHENDeğerleri doğrudan SELECT'te kategorilere dönüştürme.~10 min
- 4.4Bir diğerinin içindeki sorgu: alt sorgularBir SELECT sonucunun başka bir SELECT içinde kullanılması.~12 min
05 · Modül 5 — Gelişmiş JOIN'ler
Çoklu tablo JOIN'ler, kendi kendine birleştirmeler, OUTER, CROSS ve set işlemleri: verileri bir profesyonel gibi birleştirin.
- 5.1Üç veya daha fazla tablodaki JOIN'lerTek bir sorguda bir ilişkiler zincirini geçme: siparişler → müşteriler → ürünler.~12 min
- 5.2Self-JOIN: kendi içinde bir tabloHiyerarşiler ve iç ilişkiler: iki role (çocuk ve ebeveyn) sahip bir tablonun okunması.~10 min
- 5.3OUTER JOIN: "boşlukları" bulmaEşleşmeyen satırları bulmak için LEFT/RIGHT/FULL OUTER JOIN'i kullanma.~10 min
- 5.4UNION, KESİŞTİ, HARİÇ (ve ÇAPRAZ KATIL)Sonuçların kümeler halinde birleştirilmesi: birleşim, kesişim, fark ve kartezyen çarpım.~12 min
06 · Modül 6 — Yerleşik işlevler
PostgreSQL yerel işlevleriyle verileri dönüştürün ve yönetin: dizeler, tarihler, sayılar, tür dönüştürmeleri.
- 6.1Dize işlevleriALT, ÜST, UZUNLUK, birleştirme, ALTYAPI, KIRMA, DEĞİŞTİRME, BEĞENME ve BEĞENME.~12 min
- 6.2Tarih ve zaman damgası işlevleriEXTRACT, DATE_TRUNC, aralıklar ve tarih farklılıkları.~12 min
- 6.3Sayısal işlevlerYUVARLAK, TAVAN, ZEMİN, ABS, MOD ve tamsayıya karşı ondalık bölme.~10 min
- 6.4CAST ve tür dönüşümleri`::type` ve `CAST(... AS ...)` ile türler arasında dönüştürme.~10 min
07 · Modül 7 — Gelişmiş analitik
Çok adımlı sorgular (CTE), sıralamalar ve çalışan toplamlar (pencere işlevleri), sınırsız hiyerarşiler (ÖYİNELEMELİ).
- 7.1CTE: İLE çok adımlı sorgularOkunabilirlik ve yeniden kullanım için karmaşık bir sorguyu adlandırılmış adımlara bölme.~12 min
- 7.2Pencere işlevleri: sıralamalar ve grup başına hesaplamalarGrup içi sıralamalar için ROW_NUMBER, RANK, DENSE_RANK ve OVER(PARTITION BY…)~14 min
- 7.3LAG, LEAD ve devam eden toplamlarHer satırı önceki/sonrakiyle karşılaştırmak ve kümülatif toplamları hesaplamak.~12 min
- 7.4Özyinelemeli CTE'ler: keyfi derinlikli hiyerarşilerKategoriler gibi hiyerarşiler arasında geçiş yapmak için ÖZYİNELENME İLE.~14 min
08 · Modül 8 — Veri yazma ve değiştirme
Kısıtlamalarla INSERT, UPDATE, DELETE, CREATE TABLE, işlemler: döngüyü yazmalarla kapatma.
- 8.1Veri ekleme: INSERTTek ve çok satırlı INSERT, RETURNING yan tümcesi, sütunları açıkça seçiyor.~10 min
- 8.2Güncelleme ve silme: GÜNCELLEME ve SİLNEREDE ile ilgili seçici değişiklikler ve unutulan NEREDE'nin neden bir felaket olduğu.~10 min
- 8.3Tablolar ve kısıtlamalar oluşturma: DDLBİRİNCİL ANAHTAR, BOŞ DEĞİL, BENZERSİZ, YABANCI ANAHTAR, KONTROL ve VARSAYILAN İLE TABLO OLUŞTURUN.~12 min
- 8.4İşlemler: ya hep ya hiçBEGIN, COMMIT, ROLLBACK: bir grup işlemi atomik hale getirmek.~10 min
09 · Modül 9 – Veri yapıları ve DDL
Tablolar, gelişmiş kısıtlamalar, karmaşık türler ve görünümler oluşturma ve değiştirme.
- 9.1Gelişmiş veri türleri ve ENUM'larSayısal türler, TEXT ve VARCHAR, BOOLEAN, UUID ve özel ENUM türleri.~10 min
- 9.2Çoklu ve tablo düzeyinde kısıtlamalarBileşik UNIQUE ve PRIMARY KEY kısıtlamaları, gelişmiş CHECK ve yabancı anahtarlar (ON DELETE CASCADE).~12 min
- 9.3Yapının değiştirilmesi: ALTER TABLEMevcut tablolara sütun veya kısıtlama ekleme, değiştirme ve kaldırma.~10 min
- 9.4Görünümler ve veri soyutlamaKarmaşık sorguları basitleştirmek için GÖRÜNÜMLER ve performans için MALZEMESEL GÖRÜNÜMLER oluşturma.~12 min
10 · Optimizasyon ve dizinler
Sorguları hızlı yapma sanatı: dizinler, yürütme planları ve veritabanı optimizasyonu.
- 10.1İndeksler ve B-AğaçlarıBüyük tablolarda arama sorgularını önemli ölçüde hızlandırmak için dizinler oluşturun.~15 min
- 10.2AÇIKLAYIN ve ANALİZ EDİNDarboğazları teşhis etmek için veritabanı yürütme planlarını okumayı öğrenin.~15 min
- 10.3Bileşik ve kısmi indekslerDizinleri aynı anda birden fazla sütunda veya yalnızca verinin belirli bir bölümünde kullanın.~12 min
- 10.4N+1 problemiKötü şöhretli ORM performans sorunu ve bunu tek bir sorguyla aşmak için yerel SQL yöntemleri.~12 min
11 · İşlemler ve eşzamanlılık
Eş zamanlı veri değişikliklerini güvenli bir şekilde yönetin: ACID işlemleri, kilitler ve izolasyon seviyeleri.
- 11.1ASİT işlemleri (BEGIN/COMMIT)BEGIN, COMMIT ve ROLLBACK ile verileri tutarlı tutun ve sorguları başkaları tarafından görülmeyecek şekilde tek bir blokta gruplandırın.~15 min
- 11.2Yarış koşullarıUç senaryolar: İki paralel veritabanı çalışanı aynı kullanıcı sepetinde hareket ettiğinde ne olur?~10 min
- 11.3Kilitleme ve GÜNCELLEME İÇİN SEÇOkuma sırasında satırları aktif olarak kilitleyerek diğer mutasyona uğrayan iş parçacıklarını sıralarını beklemeye zorlayın.~15 min
- 11.4İzolasyon seviyeleriSerileştirilebilir'i uygulayarak sınırları zorlayın veya güvenli olmayan ancak hızlı performans için Okuma Taahhütlü'ye bırakın.~12 min
12 · İşlevler ve tetikleyiciler
Veritabanı içindeki iş mantığını otomatikleştirin: yeniden kullanılabilir işlevler yazın ve tetikleyicilerle olaylara tepki verin.
- 12.1UDF'ler ve temel SQLKarmaşık hesaplamaları özetlemek ve bunları her sorguda makrolar gibi yeniden kullanmak için kendi Kullanıcı Tanımlı İşlevlerinizi oluşturun.~15 min
- 12.2PL/pgSQL ile gelişmiş mantıkİşlevlerinize süper güçler verin: değişkenler, if-else dalları ve veritabanı içindeki saf prosedür tarzında döngüler.~15 min
- 12.3Tetikleyicilere girişGİDEN (ESKİ) veya GELEN (YENİ) kaydı anlık olarak inceleyebilecek özel fonksiyonlar tanımlayın.~15 min
- 12.4Pratik tetikleyiciler ve denetimGüvenliği otomatikleştirin: "updated_at" tarihini otomatik olarak güncelleyin ve silinen satırları uyumluluk için sihirli bir şekilde arşivleyin.~12 min
13 · Pencere işlevleri
Satırları daraltmadan gelişmiş veri analizi: OVER(), PARTITION BY ve analitik işlevleri keşfedin.
- 13.1Giriş ve OVER cümleciğiOrijinal bireysel satırları korurken toplu hesaplamaları (SUM veya AVG gibi) çalıştırın.~15 min
- 13.2PARTITION BY ile gruplamaGROUP BY kullanmadan, işlevlerin uygulanacağı veriler içinde mantıksal gruplamalar (pencereler) oluşturun.~15 min
- 13.3Sıralamalar: ROW_NUMBER, RANK ve DENSE_RANKSonuçlara sıralı satır numaraları ve sıralamalar atayın ve bağları doğru şekilde ele alın.~15 min
- 13.4Geçişler: LAG ve LEADDeltaları ve varyasyonları hesaplamak için önceki veya sonraki satırdaki değerlere doğrudan geçerli satırdan erişin.~12 min
14 · CTE'ler ve hiyerarşik sorgular (WITH)
Ortak Tablo İfadeleri ile büyük sorguları basitleştirin ve yinelemeli CTE'lerle sınırsız veri ağaçlarında gezinin.
- 14.1CTE'lere Giriş (ILE)Okunamayan iç içe geçmiş alt sorguları, geçici "sanal tablolar" bildirerek temiz bir prosedür biçimiyle değiştirin.~12 min
- 14.2Çoklu ve zincirleme CTE'lerİşlemeyi tek bir With ifadesi içinde birden çok ardışık adıma bölerek karmaşıklığı ortadan kaldırın.~15 min
- 14.3Özyinelemeli CTE'ler: ağaç şeklindeki verilerCTE'yi kendi içinden çağırarak yönetici hiyerarşilerinde ve üst-alt kategorilerde sınırsız gezinin.~18 min
15 · PostgreSQL JSON ve NoSQL
Harici veritabanları kullanmadan JSON ve JSONB aracılığıyla esnek belge desteğiyle birleştirilmiş ilişkisel güçten yararlanın.