SQL DATABASES USING SQLALCHEMY: QUERYING DATA EĞİTİMİ

SQLAlchemy ile veriyi tam da istediğiniz gibi sorgulayın

select(), filtreleme, ilişki yükleme ve sonuç işleme ile güçlü SQLAlchemy sorguları

SQLAlchemy: Querying Data Eğitimi, SQLAlchemy'de veri sorgulamaya derinlemesine odaklanan 3 günlük orta seviye bir programdır. 2.0 stilinde select() construct'ı, where() ve and_/or_/in_/like operatörleriyle filtreleme, order_by, limit ve offset ile sayfalama,…

3 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

SQLAlchemy Core ve ORM ile ileri veri sorgulamaya odaklanan uygulamalı eğitim

Bu eğitim, SQLAlchemy'de veri sorgulamaya derinlemesine odaklanır. 2.0 stilinde select() construct'ının yapısı, where() ile filtreleme, and_, or_, in_ ve like operatörleri, order_by, group_by ve having, toplama fonksiyonları ve label kullanımı işlenir. ORM tarafında ilişki yükleme stratejileri (lazy, joined, selectin), N+1 sorunu ve Result API ele alınır. Sayfalama, limit, offset ve alt sorgular da kapsanır; örnekler PostgreSQL ve SQLite üzerinde işlenir.

Süre ve Format

3 Gün. İlk gün select() ve filtreleme; ikinci gün gruplama, toplama ve alt sorgular; üçüncü gün ilişki yükleme stratejileri ve sonuç işleme uygulamalı işlenir.

Seviye

Orta Seviye — SQLAlchemy temellerini bilen ve veri sorgulamada derinleşmek isteyen Python geliştiricileri için

Öğrenme Metodu

Her konu örnek bir ORM modeli üzerinde canlı kod yazılarak, SQLAlchemy'nin ürettiği SQL ve sorgu sonuçları birlikte incelenerek işlenir.

Neden Bu Eğitim?

🔍Sorgu Derinliği

select() construct'ını, filtreleri ve operatörleri derinlemesine öğrenerek karmaşık veri sorularını doğru ifade edersiniz.

⚡N+1'den Kurtulun

lazy, joined ve selectin yükleme stratejilerini kavrayarak performansı düşüren N+1 sorgu sorununu önlersiniz.

🧩Core ve ORM Sorguları

Aynı sorguyu hem Core hem ORM ile yazıp üretilen SQL'i karşılaştırarak bilinçli tercih yaparsınız.

Anahtar Konular

sqlalchemy sorgulamasqlalchemy queryingsqlalchemy selectpython orm sorgun+1 sorunujoinedloadselectinloadsqlalchemy eğitimipython veritabanı sorguilişki yükleme
“İyi bir sorgu sadece doğru veriyi değil, onu en az sorguyla ve en okunabilir biçimde getiren sorgudur.”

Ön Koşullar

Bu orta seviye eğitim için önerilen ön bilgiler

1
SQLAlchemy Temelleri

Engine, Session ve declarative modellerle temel ekleme-sorgulama yapabiliyor olmak beklenir.

2
Temel SQL

SELECT, WHERE, JOIN ve GROUP BY gibi temel SQL kavramlarına aşinalık gereklidir.

3
Python Bilgisi

Sınıf, fonksiyon ve liste/sözlük yapılarıyla rahat çalışabilen Python düzeyi önerilir.

4
Çalışan Ortam

SQLAlchemy kurulu, SQLite veya PostgreSQL'e bağlanabilen bir Python ortamına erişim önerilir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefi2.0 stilinde select() construct'ını kurmak, where() ile çeşitli operatörleri kullanarak filtreleme yapmak ve sonuçları sıralayıp sınırlayabilmek.
Modül 1
select() Construct Yapısı
  • 2.0 stilinde select() construct'ının genel yapısı
  • Model ve sütun düzeyinde seçim arasındaki fark
  • session.execute ile sorgunun çalıştırılması
  • scalars() ve scalar_one ile sonuç türünün belirlenmesi
  • Core select() ile ORM select() karşılaştırması
  • Üretilen SQL'in echo veya str() ile incelenmesi
Modül 2
where() ve Operatörler
  • where() ile tek ve çok koşullu filtreleme
  • and_, or_ ve not_ ile koşulların birleştirilmesi
  • in_, not_in ve between ile aralık filtreleri
  • like, ilike ve startswith ile metin eşleştirme
  • is_ ve isnot ile NULL karşılaştırmaları
  • Hibrit özellikler (hybrid_property) ile filtreleme
Modül 3
Sıralama ve Sütun İşlemleri
  • order_by ile artan ve azalan sıralama
  • asc ve desc fonksiyonlarının kullanımı
  • label ile sütunlara takma ad verilmesi
  • distinct ile benzersiz sonuçların elde edilmesi
  • Hesaplanmış sütun ve ifadelerin seçilmesi
  • case() ile koşullu sütun değerleri
Modül 4
Sayfalama ve Limit/Offset
  • limit ve offset ile sonuç kümesinin bölünmesi
  • Sayfalama için keyset (seek) yöntemi mantığı
  • offset'in büyük veri setlerinde performans etkisi
  • Toplam kayıt sayısı için ayrı count sorgusu
  • fetch ve first ile sınırlı sonuç alma
  • Sayfalı API yanıtları için pratik desenler
Günün hedefigroup_by ve having ile gruplama yapmak, toplama fonksiyonlarını label ile kullanmak ve subquery ile alt sorgular oluşturabilmek.
Modül 1
Gruplama ve Toplama
  • func.count, func.sum ve func.avg kullanımı
  • group_by ile sonuçların gruplandırılması
  • having ile grup düzeyinde filtreleme
  • label ile toplama sonuçlarına ad verme
  • Birden çok sütuna göre çok seviyeli gruplama
  • Toplama sonuçlarının ORM nesneleriyle birleştirilmesi
Modül 2
Alt Sorgular ve CTE
  • subquery() ile alt sorgu oluşturma
  • Alt sorgunun FROM içinde kullanılması
  • scalar_subquery ile skaler alt sorgu
  • correlate ile ilişkili alt sorgular
  • cte() ile ortak tablo ifadesi tanımı
  • exists() ile varlık denetimi sorguları
Modül 3
Birleşimler ve JOIN Sorguları
  • join() ile iki modelin sorguda birleştirilmesi
  • outerjoin() ile sol dış birleştirme
  • İlişki (relationship) üzerinden join yapılması
  • aliased ile aynı tablonun iki kez kullanımı
  • union ve union_all ile sonuçların birleştirilmesi
  • JOIN sonucunda sütun seçimi ve çakışma yönetimi
Modül 4
Sonuç İşleme ve Result API
  • Result, Row ve RowMapping nesnelerinin anlaşılması
  • scalars, all, first ve one farkları
  • mappings() ile sözlük biçiminde sonuç alma
  • partitions ve yield_per ile akışlı okuma
  • Sonuçların Python nesnelerine dönüştürülmesi
  • Boş sonuç ve NoResultFound durumlarının ele alınması
Günün hedefirelationship üzerinden ilişkili veriyi sorgulamak, lazy, joined ve selectin yükleme stratejilerini uygulamak ve N+1 sorununu fark edip önleyebilmek.
Modül 1
relationship ile Sorgulama
  • relationship tanımının sorgulamaya etkisi
  • one-to-many ve many-to-many ilişkilerin sorgulanması
  • İlişkili nesnelere Python tarafından erişim
  • back_populates ile çift yönlü ilişki kullanımı
  • İlişki üzerinden filtreleme ve any/has kullanımı
  • İlişkili koleksiyonların sıralı yüklenmesi
Modül 2
Yükleme Stratejileri
  • lazy loading mantığı ve varsayılan davranış
  • joinedload ile tek sorguda ilişki yükleme
  • selectinload ile ayrı IN sorgusuyla yükleme
  • subqueryload ve raiseload stratejileri
  • contains_eager ile elle join edilen veriyi yükleme
  • Strateji seçiminin üretilen SQL'e etkisi
Modül 3
N+1 Sorunu ve Performans
  • N+1 sorgu sorununun nasıl oluştuğunun gösterimi
  • echo ile fazladan sorguların tespiti
  • Uygun yükleme stratejisiyle N+1'in önlenmesi
  • Sadece gerekli sütunların seçilerek yük azaltma
  • populate_existing ve önbellek davranışı
  • Sorgu sayısının profil araçlarıyla ölçülmesi
Modül 4
Uygulama ve İyi Uygulamalar
  • Katmanlı bir sorgu servis fonksiyonunun yazılması
  • Tekrar kullanılabilir sorgu bileşenleri oluşturma
  • Okunabilir ve test edilebilir sorgu kodu
  • Core ve ORM arasında bilinçli tercih
  • Sorguların birim testleriyle doğrulanması
  • Querying sonrası ileri konulara geçiş yolu

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
select() Ustalığı

2.0 stilinde select() construct'ını kurup model ve sütun düzeyinde esnek sorgular yazabilirsiniz.

✅
Filtreleme

where() ile and_, or_, in_, like ve NULL operatörlerini kullanarak karmaşık koşulları ifade edebilirsiniz.

✅
Gruplama ve Toplama

group_by, having ve func toplama fonksiyonlarıyla veriyi özetleyip label ile anlamlı sonuçlar üretebilirsiniz.

✅
Alt Sorgu ve CTE

subquery, scalar_subquery, cte ve exists kullanarak iç içe ve ilişkili sorgular oluşturabilirsiniz.

✅
JOIN Sorguları

join, outerjoin, aliased ve relationship üzerinden çok tablolu sorguları doğru biçimde kurabilirsiniz.

✅
Yükleme Stratejileri

lazy, joinedload ve selectinload stratejilerini uygulayarak ilişkili veriyi verimli şekilde yükleyebilirsiniz.

✅
N+1 Önleme

N+1 sorgu sorununu üretilen SQL üzerinden tespit edip uygun strateji ile ortadan kaldırabilirsiniz.

✅
Sonuç İşleme

Result, scalars, mappings ve yield_per ile sorgu sonuçlarını doğru ve verimli biçimde işleyebilirsiniz.

Kimler İçin Uygundur?

  • SQLAlchemy'nin temellerini bilen
  • Engine ve Session kullanabilen Python geliştiriciler
  • backend geliştiriciler ve veri mühendisliğiyle ilgilenen
  • veri sorgulamada derinleşmek isteyen BT personeli

Sıkça Sorulan Sorular

Bu eğitim için SQLAlchemy'nin temellerini bilmem gerekir mi?
Evet. Bu orta seviye eğitim, Engine, Session ve declarative modellerle temel ekleme-sorgulama yapabildiğinizi varsayar. Henüz bu seviyede değilseniz önce SQLAlchemy: Getting Started eğitimini almanız önerilir. O temel üzerine bu eğitim ileri sorgulama becerilerini ekler.
N+1 sorunu nedir ve eğitimde ele alınıyor mu?
N+1 sorunu, bir koleksiyonu çekip ardından her öğenin ilişkili verisi için ayrı sorgu çalıştırıldığında ortaya çıkan ve çok sayıda gereksiz sorguya yol açan performans sorunudur. Üçüncü gün bu sorun canlı olarak gösterilir ve joinedload ile selectinload gibi yükleme stratejileriyle nasıl önleneceği uygulamalı işlenir.
Bu eğitim Manipulating Data eğitiminden farkı nedir?
Bu eğitim yalnızca veri okumaya, yani sorgulamaya odaklanır: select, filtreleme, gruplama, JOIN ve ilişki yükleme. Manipulating Data eğitimi ise INSERT, UPDATE, DELETE, toplu işlemler ve ilişkili veri değiştirme gibi veriyi yazma ve güncelleme konularını kapsar. İkisi birbirini tamamlar.
Hangi SQLAlchemy sürümü kullanılıyor?
Eğitim, modern 2.0 stili select() construct'ı ve session.execute yaklaşımıyla işlenir. Bu stil, 1.4 ve 2.x sürümlerinde önerilen güncel yaklaşımdır. Eski Query API'ye de kısaca değinilir ancak örnekler ağırlıklı olarak 2.0 stilinde yazılır.
Eğitim sonunda sertifika veriliyor mu?
Evet. Programı tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası alır. Eğitim; kurum içi yüz yüze veya online olarak verilebilir ve içerik katılımcı profiline göre uyarlanır. Herhangi bir ürün tabanlı resmi sınav tercih edilmesi halinde, o sınavın başvurusu ve ücreti ilgili kuruma aittir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. SQL Databases Using SQLAlchemy: Querying Data Eğitimi Sertifika Kodu DV-2026XX00 Tarih 23.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Veritabanı Yönetimi TemelleriAdvanced SQL Queries Eğitimi
Veritabanı Eğitimleri

Advanced SQL Queries Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

Pencere fonksiyonları, CTE, recursive sorgular, PIVOT, gelişmiş JOIN ve execution plan optimizasyonu ile ileri seviye SQL sorgu yazımını öğreten uygulamalı eğit

Detayları Gör →
Veritabanı Yönetimi TemelleriAnalistler için İleri Seviye SQL Eğitimi
Veritabanı Eğitimleri

Analistler için İleri Seviye SQL Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Veri analistleri için toplulaştırma, pencere fonksiyonları, kohort ve funnel analizi, zaman serisi ve raporlama odaklı ileri seviye analitik SQL eğitimi.

Detayları Gör →
Veritabanı Yönetimi TemelleriBasic Database Operations Eğitimi
Veritabanı Eğitimleri

Basic Database Operations Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

İlişkisel veritabanı kavramları, tablo tasarımı, DDL/DML, SELECT, JOIN ve temel transaction işlemlerini sıfırdan öğreten uygulamalı temel veritabanı eğitimi.

Detayları Gör →
Veritabanı Yönetimi TemelleriBuilding Dynamic Web Sites with MySQLi Eğitimi
Veritabanı Eğitimleri

Building Dynamic Web Sites with MySQLi Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

PHP MySQLi ile veritabanı bağlantısı, prepared statement, SQL injection önleme, CRUD ve oturum yönetimiyle dinamik web geliştirmeyi öğreten uygulamalı eğitim.

Detayları Gör →
Veritabanı Yönetimi TemelleriBuilding Web Applications with JSP: Integrating a JSP App with a Database Eğitimi
Veritabanı Eğitimleri

Building Web Applications with JSP: Integrating a JSP App with a Database Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

JSP, JDBC, DAO deseni, bağlantı havuzu, CRUD, transaction ve MVC ile veritabanı destekli Java web uygulaması geliştirmeyi öğreten uygulamalı eğitim.

Detayları Gör →
Veritabanı Yönetimi TemelleriBüyük Ölçekli OpenSearch Eğitimi
Veritabanı Eğitimleri

Büyük Ölçekli OpenSearch Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

OpenSearch veri modelleme, Query DSL, full-text arama, relevance ayarı, aggregation, sharding ve Dashboards ile büyük ölçekli arama ve analitik eğitimi.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn