Bir Tablo'dan Seçilen Verileri Filtreleme - Gelişmiş
Harika gidiyorsun! SQLAlchemy, daha karmaşık filtreler kurmak için and_(), or_() ve not_() gibi bağlaçların kullanılmasına da izin verir. Örneğin, aşağıdaki kodla New York’taki yaşı 21 veya 37 olan kişilerin kayıtlarını alabiliriz:
select([census]).where(
and_(census.columns.state == 'New York',
or_(census.columns.age == 21,
census.columns.age == 37
)
)
)
Buna eşdeğer bir SQL ifadesi örneğin şöyledir:
SELECT * FROM census WHERE state = 'New York' AND (age = 21 OR age = 37)
Bu egzersiz, kursun bir parçasıdır
Python ile Veritabanlarına Giriş
Egzersiz talimatları
sqlalchemymodülündenand_fonksiyonunu içe aktar.censustablosundaki tüm kayıtları seç.statedeğeri'California'olan vesexdeğeri'M'OLMAYAN tüm kayıtları filtrelemek için bir where koşulu ekle.stmtifadesini bağlantıda çalıştır ve ResultProxy üzerinde yineleyerek her kaydınagevesexsütunlarını yazdır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Import and_
from ____ import ____
# Build a query for the census table: stmt
stmt = select(____)
# Append a where clause to select only non-male records from California using and_
stmt = stmt.where(
# The state of California with a non-male sex
____(census.columns.state == ____,
census.columns.sex != ____
)
)
# Loop over the ResultProxy printing the age and sex
for result in ____:
print(____, ____)