Memfilter data yang dipilih dari sebuah Tabel - Lanjutan
Anda sudah semakin mahir! SQLAlchemy juga memungkinkan Anda menggunakan konjungsi seperti and_(), or_(), dan
not_() untuk membangun penyaringan yang lebih kompleks. Sebagai contoh, kita dapat mengambil sekumpulan rekaman
untuk orang di New York yang berusia 21 atau 37 tahun dengan kode berikut:
select([census]).where(
and_(census.columns.state == 'New York',
or_(census.columns.age == 21,
census.columns.age == 37
)
)
)
Pernyataan SQL yang setara, misalnya, adalah
SELECT * FROM census WHERE state = 'New York' AND (age = 21 OR age = 37)
Latihan ini adalah bagian dari kursus
Pengantar Basis Data di Python
Petunjuk latihan
- Impor
and_dari modulsqlalchemy. - Pilih semua rekaman dari tabel
census. - Tambahkan klausa where untuk memfilter semua rekaman yang
state-nya'California', dansex-nya bukan'M'. - Eksekusi
stmtpada koneksi dan iterasikan ResultProxy untuk mencetak kolomagedansexdari setiap rekaman.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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(____, ____)